推荐:对FCBLOG的简单分析

不要试图去解释这个世界上任何的误解和扭曲,存在的都是真理,任何人的成功,都不是虚头,他们一定付出了你没有想到的努力和代价,才华、机遇、运气、努力、外貌,甚至是不光彩的事情,都是存在,没什么值得怀疑。
一:古老的OR注入漏洞。

看一下首页,做的好凑合。有个登陆的地方,如图1.



二话不说,试’or’=’or’,
点击登陆。没想到竟然直接进来了。我们看下它的login.asp,关键代码如下:

!--#include file="conn.asp"-->
FCBLOG

用户登陆
function del_space(s)
{
for(i=0;i
for(j=s.length-1;j>=0;--j)
{
if(s.charAt(j)!=" ")
break;
}
return s.substring(i, j);
}
function VerifySubmit()
{
topic = del_space(document.form1.name.value);
if (topic.length == 0)
{
alert("您忘了写用户名!");
return false;
}

if (document.form1.pwd.value == "")
{
alert("请输入密码!");
return false;
}
return true;
}

只用了javascript在本地做了个判断用户名和密码是否为空就直接放过去了,也
没用其它文件来判断下数据,当然也没有做过滤,不产生注入才怪,如图2



二:跨站漏洞。

首页还有个留言的版块,我们去看看!直接在几个框框中输入:alert(/
冰的原点/),如图3



提交,果然不出所料啊,对话框弹了出来,而且还
弹了两次,如图4



.这里有个问题,大家看下我们提交的文字在页面上的显示,如图5



.也就是为什么只弹了两次,而没有第三次呢?我们右键-查看源文件,发现有

如下代码:

<li>标题:<script>alert(/冰的原点/)</script></li><li>内容:

<script>alert(/冰的原点/)

</script></li><address><script>alert(/冰的原点/)</script>发表留言

于2007-10-26 14:16:41</address></li><li>标题:kk</li><li>内容:

kkkkkk</li><address>kk发表留言于2007-8-29 23:31:38</address></li></ul>
也就是说程序对内容传递过来的值进行了转化,把<和>分别转化成了<和>,只做了一次过滤,哎,程序员是马虎了(这里我没有去看它的程序源代码了)。

三:真假注入。

我们先把程序放到工具里面去,看有没有明显的注入,如图6



.显然工具无能为力
。而且我看了下,大部分的页面都是静态的。有人就会问了,都是静态的还能注
入么?这里它的静态的页面都是用JS调用生成的,几乎每个页面都包含如下代码:
if(page=totalpage)then
’生成HTML静态首页
Set fso = Server.CreateObject("Scripting.FileSystemObject")
fso.CreateFolder(Server.MapPath(""))
Set fout = fso.CreateTextFile(Server.MapPath("msgpost.html"))
fout.WriteLine show
fout.close
response.redirect "msgpost.html"
end if%>

正因为有这样的东西,所以值在传递的时候,都没怎么过滤,代码如下:
’打开模板代码,并将其中特殊代码转变为接受值
sql1="select id,user_skin_main,user_skin_showlog from fc_moban where
default=true"
set rs1=Server.CreateObject("adodb.recordset")
rs1.open sql1,conn,1,1
user_skin_main=rs1("user_skin_main")
user_skin_showlog=rs1("user_skin_showlog")
rs1.close
像这样的代码还有很多呢。




以上就是推荐:对FCBLOG的简单分析 。人心本无染,心静自然清。更多关于推荐:对FCBLOG的简单分析 请关注haodaima.com其它相关文章!

标签: