senlon是一款免费的在线算命系统(当然,他是干什么的不用管,我们只管看代码找bug就OK,也没多看到底是什么系统,貌似这套V3.1还是最新版,看网站简介还很强大很NB。)架构是asp+access的,我是在自己本机架的测试环境,我自己搭建的环境是windows xp+asp+access2003,服务器是用小旋风的asp server,核心是netbox2.8的。
像这种整站程序,我一般是先看首页文件,主要是看它包含哪些其他文件,其次是看程序动态交互的地方,这些地方一不小心就很容易出问题的,最后看数据库。当然这只是个人习惯而已。
漏洞文件:chouqian目录下的guanyin.asp,第13-18行代码。代码如下:
gyqid=request("gyqid") set rs=server.createobject("adodb.recordset") sql="select * from guanyin where id="&gyqid rs.open sql,conn,1,3 jieqian=rs("jieqian") Rs.close |
对于获取的gyqid变量没做任何过滤便入库查询了,很明显的SQL injection。其实漏洞代码不仅产生在这一处,其他代码也存在同样问题,而且在这个文件夹下的huangdaxian.asp,zgjm.asp,zgss.asp文件均有类似问题,这里不再重复。
此外在astro目录下的xzyc.asp文件,第43-49行代码:
xz=request("xz") if xz<>"" then Sql="select * from xzysday where id="&xz else Sql="select * from xzysday where xzmc='"&myxz&"'" end if rs.open sql,conn,1,1%> |
……………………
查看全文请点击下载:http://www.51testing.com/html/39/n-234539.html
该文件在其他地方同样也出现了类似漏洞,这里不再重复。另外要提的是,它的根目录下面有一个sql.asp文件,是用来防注入的,先看防注代码吧:
<% ' '核客SQL高级防注入程序加强版 '本程序由 绝情风 合作开发 '对本程序有任何疑问请联系本人 '中国核客 '此版本欢迎到处转 '--------定义部份------------------ Dim Fy_Post,Fy_Get,Fy_In,Fy_Inf,Fy_Xh,Fy_db,Fy_dbstr '自定义需要过滤的字串,用"枫"分隔 Fy_In = "'枫;枫and枫exec枫insert枫select枫delete枫update枫count枫*枫%枫chr枫mid枫master枫truncate枫char枫declare" '---------------------------------- %> <% |