记一次ASP+ACCESS手注

查找注入点

注入点一般存在于数据交互的位置,比如新闻,要事,各种活动……等等位置,所以先访问新闻页面,打开的网址是:http://192.168.1.102/NewsInfo.asp?Id=131,但是不知道这里是否存在注入,那就先猜测这个页面存在注入点吧

验证是否存在注入点,payload:?Id=131%20and%201=2(当然使用别的语句也能实现.),发现页面变成了下面这样,显示异常,则可判断其存在注入.

猜表名,这里我是借助burpsuite进行猜测table_name

如果使用这种方法的话会对字典有一定的要求,不过兼容性好,速度慢,啊D明小子也是使用的这种方法,如果可以的话,还是先尝试进行联合查询

配置好代理后,使用payload:and exists (select * from admin),进行抓包,并发送到Intruder模块

将需要爆破的位置设置变量,并配置字典


配置完成后,进行攻击,并对返回包大小进行判断,发现存在两个表:userManage_User

得到table_name后,尝试猜columns_name

这里同样使用的是字典,所以,成功性还是降低了

同样使用burpsuite,使用payloadand exists (select user_name from admin)进行爆破

通过爆破发现得到3列:id,username,password

得到columns_name,进行最后一步,爆数据

我使用的逐字猜解法,虽然慢点,但是稳妥,嘿嘿

先进行username的数据长度进行猜解,同样使用burpsuite进行猜解



得到第一列的长度是5,所以使用payload:and (select top 1 asc(mid(username,1,1)) from Manage_User)=97开始爆数据

关于mid(column_name,strat,step):数据截取函数,我标注参数含义,应该能理解,以这个payload来说,就是对username列的第1(top 1)条数据的第1位(start)进行截取,截取1位(step),因为我们已经知道第一行得到的数据长度为5,所以start取1-5即可.

PS:因为这里恰巧是admin,所以直接使用97-122就可以爆出来,但是因为数据是区分大小写的,如果得到的数据不是5位,则可能包含其他内容,所以可以使用32-126进行猜解

ASCII解码,得到用户名admin

同样的方法进行password的数据猜解,先猜解长度,payload:and (select top 1 len(password) from Manage_User)=5

猜解数据,payload:and (select top 1 asc(mid(password,1,1)) from Manage_User)=65

进行ASCII解码

发现可能是md5加密,进行md5解密,得到password:

尝试进行后台登陆


结束

这个其实使用sqlmap完全可以实现一把梭,但是还是尝试手注吧,多练习一下,嘿嘿.其实还有另外一种方法,就是联合查询,速度会快很多,但是兼容性不是很好,比如这次这套cms,就不能进行联合查询,只能用这种方法进行注入.

posted @ 2020-05-03 01:08  Quail  阅读(209)  评论(0编辑  收藏  举报