拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

CTF BUU-Basic SQLI-Labs 1~4

CTF BUU-Basic SQLI-Labs 1~4

Abstract

使用工具Burp Suite抓包,尝试解决BUU-Basic SQL的基础题:SQLI-Labs 1~4,学习几种注入方法。

(欢迎各位提出宝贵意见~很高兴能帮助到您)

Tips

') 字符注入点后端代码:

$id = $_GET['id']; $sql = "SELECT * FROM users WHERE id=('$id') LIMIT 0,1";

数字注入点后端代码:

$id = $_GET['id']; $sql = "SELECT * FROM users WHERE id=$id LIMIT 0,1";

Page One 基础注入


1 GET注入 报错型 字符注入

1 用Burp抓包,如图:

2 提示输入id作为参数,便构造url表单参数,以此确认 id= 为注入点,如图:

3 判断注入类型,尝试加入 ',观察到响应包有报错,报文提示 ' 包裹,由此确认是 ' 的字符型注入,观察插入后的后端sql语句,如图:

select ... from ... where id='1'' limit 0,1

观察到,该SQL语句尾部有LIMIT限制结果,将其注释处理,观察插入后的后端sql语句,#后的被注释掉,如图:

select ... from ... where id='1'#' limit 0,1

4 判断查询列数,1或2或3响应包均有内容,其他均无内容,由此推断3列,如图:

5 使用union联合查询,查找外显点,观察到2和3列可以外显数据,如图:

6 查找当前使用的数据库,如图:

7 查找网站使用的所有数据库,如图:

8 观察到数据库ctftraining,和flag关联性大,优先选择来查表查列,找到flag,如图:


2 GET注入 报错型 数字注入

1 提示 id= 为注入点,尝试加入 ',观察到响应包有报错,报文提示 ' 多余,由此报文确认 ' 是多余的符号,故不是字符注入,是数字注入,观察插入后的后端sql语句,如图:

select ... from ... where id=1'

观察到,该SQL语句尾部有LIMIT限制结果,将其注释处理,观察插入后的后端sql语句,#后的被注释掉,如图:

select ... from ... where id=1 # limit 0,1

并且,按照下列形式插入,同样可证明是数字注入,如图:

2 本题和一的区别在于注入类型不同,其他思路相同,如图:


3 GET注入 报错型 字符注入

1 提示 id=为注入点,尝试加入 ' ,观察到响应包有报错,由报文确认是 ') 字符注入,如图:

2 此题和一的区别在于是 ') 字符注入,其他思路相同,如图:


4 GET注入 报错型 字符注入

1 提示 id= 为注入点,尝试输入 ' 或 ) 均无反应," 响应包有报错,由报文确认是 ") 字符注入,如图:

2 本题和一的区别在于是 ") 符号注入,其他思路相同,如图:

返回列表