为了测试WAF,要写一个ASP+MSSQL2005的注入点,自己又不会ASP,于是网上查到了这个文章,文章虽然很老,但是方法却是比较实用的。
首先你要拿了一个webshell,这样你找到连接数据库的文件,大多都是conn.asp这个文件里面有mssql的用户和密码,你要找到用户名、密码、数据库所在的IP,然后连接上去
<% set rs=server.createobject("ADODB.recordset") id = request("id") strSQL = "select * from admin where id=" & id rs.open strSQL,conn,1,3 rs.close %>
把strSQL = "select * from admin where id=" & id 这句话里面的admin换成要伪造的表名,注意必须存在你可以连接上去看下表名就是了!这里假设的是admin是表名!这个文件名随便保存!然后就要构造一个连接数据库的文件了,代码如下:
<% strSQLServerName = "000.000.000.000" '服务器名称或地址 strSQLDBUserName = "sqlname" '数据库帐号 strSQLDBPassword = "sqlpass" '数据库密码 strSQLDBName = "sqldataname" '数据库名称 Set conn = Server.CreateObject("ADODB.Connection") strCon = "Provider=SQLOLEDB.1;Persist Security Info=False;Server=" & strSQLServerName & ";User ID=" & strSQLDBUserName & ";Password=" & strSQLDBPassword & ";Database=" & strSQLDBName & ";" conn.open strCon %>
这里应该都会了;不过注意的是保存的文件名要和include调用的名字一样。正常情况下,就OK了,伪造成功……
可能由于测试环境的问题,我是ASP+MSSQL2005,所以访问的时候出错了,出错提示如下:
[DBNETLIB][ConnectionOpen(Invalid Instance())] 无效的连接
如果遇到了这样的问题,请把数据库ip后面加一个端口号即可,比如把strSQLServerName = "127.0.0.1"改为
strSQLServerName = "127.0.0.1,1433" 即可。
参考文章:
http://blog.163.com/hack_xk/blog/static/169017572201071024930292/
from www.waitalone.cn.thanks for it.
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论