开坑sqli-labs,一天已更新~
注入思路
- 判断是否存在注入
- 判断注入类型
- 判断字段数
- 注数据库名
- 注表名
- 注列名
- 注数据
Less-01 GET型单引号字符型注入
1 | #判断是否存在SQL注入 |
Less-02 GET整型数字注入
1 | #判断是否存在注入 |
Less-03 单括号单引号字符型住入
1 | #判断是否存在注入 |
Less-04 双引号单括号字符型注入
1 | # 判断是否存在注入 |
Less-05 单引号报错注入
1 | #判断是否有注入 |
Less-06 双引号报错注入
1 | #判断是否存在注入 |
Less-07 利用select outinto file写文件
简单测试可以发现就两种情况,正确查询切有结果就为访问正常,语法错误或者查询没有结果就会语法报错,但是不一定是真正的语法错误
1 | #判断是否存在注入 |
但是在order by 1的时候,竟然报语法错了,这不合理因为肯定至少存在一个字段,看了源码才知道是((‘$id’))这么包着的,而且没回显明确的错误信息,这个有点不好想,需要借助fuzz的思想来测试,于是继续注入
1 | #判断字段数 |
Less-08 基于布尔的盲注
这里简单说一下,盲注就是只会回显两种情况,这两种情况可以是1和2,也可以是有和无,分别对应着对和错,思路如下
- 判断数据库名长度
- 判断数据库名
- 判断表数量
- 判断表名长度
- 判断表名
- 判断字段数量
- 判断字段长度
- 判断字段名
- 判断数据数量
- 判断数据长度
- 判断数据
给一个自己写的盲注脚本,但是时间复杂度比较大,对于性能不好的服务器会出现丢包,导致数据不准确,有待用二分法改进
1 | # -*- coding: UTF-8 -*- |
Less-09 基于单引号的时间盲注
自动化脚本如下
1 | import requests |
Less-10 基于双引号的时间盲注
1 | import requests |
Less-11 POST型单引号字符型注入
1 | #判断是否存在注入 |
Less-12 POST型双引号单括号字符型注入
1 | #判断是否存在注入 |
Less-13 POST型单引号单括号字符型报错注入/盲注
1 | #判断是否存在注入 |
给出瞎写的盲注脚本(有待二分法优化)
1 | # -*- coding: UTF-8 -*- |
Less-14 POST型双引号字符型盲注
1 |
|
Less-15 POST型单引号字符型盲注
1 |
|
Less-16 POST型双引号单括号盲注
1 |
|
Less-17 update注入
1 | #判断是否存在注入 |
Less-18 HTTP请求头之User-Agent注入
这里借助User-Agent请求头
1 | #判断是否存在注入 |
Less-19 HTTP请求头之Referer注入
1 | #判断是否存在注入 |
Less-20 HTTP请求头之cookie注入
1 | #判断是否存在注入 |
Less-21 HTTP请求头cookie字段base64注入单引号闭合
登录发现cookie字段有一段base64编码,解码为admin,于是尝试注入(其实和20关差不多,就是做一下base64即可
1 | # 查询数据库 |
Less-22 HTTP请求头cookie字段base64注入双引号闭合
探测了一下是双引号闭合,cookie字段base64传参,和前两关差别不大,直接给出payload
1 | #查询数据库名 |
Less-23 绕过对于注释符的waf(#、–+)
1 | # 判断是否存在注入及注入类型 |
可以尝试报错注入并通过最后构造一个 and ‘来闭合语句
1 | # 注数据库 |
Less-24 二次排序注入
二次排序注入也成为存储型注入,先将可以造成注入的字符存入数据库,再次进行注入时即可导致攻击
首先注册用户 admin’# 密码123
登录成功后,有一个修改密码的界面,我们猜测更改密码的语句是这样写的
1 | update set new_password='newpass' where username='' and old_password=''; |
填入我们的用户名后变为
1 | update set new_password='newpass' where username='admin'#' and old_password=''; |
可以看到后面语句都被注释掉了,所以造成了注入攻击,可以进行任意密码重置
于是我们输入将admin’#的密码修改为123,尝试登录admin 123, 发现登录成功,确定造成注入
未完待续
本文链接: https://yd0ng.github.io/2020/02/01/sqli-labs-WriteUps/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!