您现在的位置是:网站首页> 编程资料编程资料
推荐:对FCBLOG的简单分析 _入侵防御_网络安全_
2023-05-24
393人已围观
简介 推荐:对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

.也就是为什么只弹了两次,而没有第三次呢?我们右键-查看源文件,发现有
如下代码:
标题: 内容:
发表留言
于2007-10-26 14:16:41标题:kk 内容:
kkkkkk kk发表留言于2007-8-29 23:31:38
也就是说程序对内容传递过来的值进行了转化,把<和>分别转化成了<和>,只做了一次过滤,哎,程序员是马虎了(这里我没有去看它的程序源代码了)。
三:真假注入。
我们先把程序放到工具里面去,看有没有明显的注入,如图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
像这样的代码还有很多呢。
看一下首页,做的好凑合。有个登陆的地方,如图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

.也就是为什么只弹了两次,而没有第三次呢?我们右键-查看源文件,发现有
如下代码:
于2007-10-26 14:16:41
kkkkkk
也就是说程序对内容传递过来的值进行了转化,把<和>分别转化成了<和>,只做了一次过滤,哎,程序员是马虎了(这里我没有去看它的程序源代码了)。
三:真假注入。
我们先把程序放到工具里面去,看有没有明显的注入,如图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
像这样的代码还有很多呢。
相关内容
- 霸王背后的脆弱——完全解剖雷霆购物系统 _入侵防御_网络安全_
- dedecms v5.1/5.5 两处跨站漏洞的修复办法 _入侵防御_网络安全_
- SQL 手工注射原理小结_入侵防御_网络安全_
- 巧用Cacls.exe命令来修改文件访问控制权限_入侵防御_网络安全_
- php+mysql5半自动注入工具图文教程_入侵防御_网络安全_
- 黑客入侵常用的新型万能登陆密码_入侵防御_网络安全_
- 个人主机 入侵网络攻击的步骤_入侵防御_网络安全_
- 渗透服务器 绕过防注入文件_入侵防御_网络安全_
- DedeCms注入漏洞 影响版本5.3、5.5Posted in php _入侵防御_网络安全_
- 速破解无线路由器密码的全过程_入侵防御_网络安全_