首页 > 数据库技术 > 详细

SqlMap简单使用

时间:2020-11-27 22:29:27      阅读:77      评论:0      收藏:0      [点我收藏+]

SqlMap简单使用

有时候我们得到的 网站后台的登录密码 = 网站服务器的远程桌面服务登录密码 = FTP服务登录密码 (有几率)

sql注入 mysql

可使用综合性扫描软件扫描,在配合手工检测确认注入点,得到注入点后用sqlmap

https://www.freebuf.com/sectool/164608.html 超详细SQLMap使用攻略及技巧分享

SQLMAP注入之用户手册 打印细看
https://www.cnblogs.com/hongfei/p/3872156.html

参数选其讲解

参数:-r
sqlmap可以从一个文本文件中获取HTTP请求,这样就可以跳过设置一些其他参数(比如cookie,POST数据,等等)。

比如文本文件内如下:
POST /vuln.php HTTP/1.1
Host: www.target.com
User-Agent: Mozilla/4.0

id=1

当请求是HTTPS的时候你需要配合这个--force-ssl参数来使用,或者你可以在Host头后门加上:443

参数:-m
文件中保存url格式如下,sqlmap会一个一个检测

www.target1.com/vuln1.php?q=foobar
www.target2.com/vuln2.asp?id=1
www.target3.com/vuln3/id/1*

从文件中加载HTTP请求
参数:--cookie,--load-cookies,--drop-set-cookie
这个参数在以下两个方面很有用:
1、web应用需要登陆的时候。
2、你想要在这些头参数中测试SQL注入时。
可以通过抓包把cookie获取到,复制出来,然后加到--cookie参数里。

在HTTP请求中,遇到Set-Cookie的话,sqlmap会自动获取并且在以后的请求中加入,并且会尝试SQL注入。
如果你不想接受Set-Cookie可以使用--drop-set-cookie参数来拒接。
当你使用--cookie参数时,当返回一个Set-Cookie头的时候,sqlmap会询问你用哪个cookie来继续接下来的请求。当--level的参数设定为2或者2以上的时候,sqlmap会尝试注入Cookie参数。

HTTP User-Agent头
参数:--user-agent,--random-agent
默认情况下sqlmap的HTTP请求头中User-Agent值是:
sqlmap/1.0-dev-xxxxxxx (http://sqlmap.org)
可以使用--user-anget参数来修改,同时也可以使用--random-agnet参数来随机的从./txt/user-agents.txt中获取。
当--level参数设定为3或者3以上的时候,会尝试对User-Angent进行注入。

HTTP(S)代理
参数:--proxy,--proxy-cred和--ignore-proxy
使用--proxy代理是格式为:http://url:port。
当HTTP(S)代理需要认证是可以使用--proxy-cred参数:username:password。
--ignore-proxy拒绝使用本地局域网的HTTP(S)代理。

HTTP请求延迟
参数:--delay
可以设定两个HTTP(S)请求间的延迟,设定为0.5的时候是半秒,默认是没有延迟的。
设定超时时间

修改注入的数据
参数:--tamper
sqlmap除了使用CHAR()函数来防止出现单引号之外没有对注入的数据修改,你可以使用--tamper参数对数据做修改来绕过WAF等设备。
下面是一个tamper脚本的格式:

# Needed imports
from lib.core.enums import PRIORITY
# Define which is the order of application of tamper scripts against
# the payload
__priority__ = PRIORITY.NORMAL
def tamper(payload):
    ‘‘‘
    Description of your tamper script
    ‘‘‘
    retVal = payload
    # your code to tamper the original payload
    # return the tampered payload
    return retVal

可以查看 tamper/ 目录下的有哪些可用的脚本
https://blog.csdn.net/qq_34444097/article/details/82717357
https://blog.csdn.net/Litbai_zhang/article/details/99681398
https://www.cnblogs.com/milantgh/p/4343898.html

注入技术
测试是否是注入
参数:--technique
这个参数可以指定sqlmap使用的探测技术,默认情况下会测试所有的方式。
支持的探测方式如下:
B: Boolean-based blind SQL injection(布尔型注入)
E: Error-based SQL injection(报错型注入)
U: UNION query SQL injection(可联合查询注入)
S: Stacked queries SQL injection(可多语句查询注入)
T: Time-based blind SQL injection(基于时间延迟注入)

SQLMap 使用心得

I. 提高SQLMap测试等级

‐‐risk 这个参数就是把测试等级提高,如是 --risk 3 那么测试就是最高,这样SQLMap会测试更加多的注?语句。
举个栗?:
没有加 ‐‐risk 3 的情况下,SQLMap 就测试 5hoanqu‘ and 789=789 and ‘hcme‘=‘hcme ,
但是如果加了 ‐‐risk 3 参数,就会增加测试语句, 5hoanqu‘) and 789=789 and (‘hcme‘=‘hcme ,对?起来,虽然只是加了2个字符,但是意义却相差很多了的。

II. 增加被测试的参数

‐‐level 3 假设存在注?的URL为: http://baidu.com/new.php?nid=5haoanqu ,在GET请求中,我们?前看得到的参数就?个:nid.但是当我们访问过?个?站之后,我们都会得到?个cookie,当我们继续访问?站的时候,浏览器就会加载我们的cookie,?因为cookie存在我们本地,我们?是可以控制这个cookie的,所以我们就可以在cookie上?加?我们注?测试语句。?像UserAgent头也是?样的,具体你可以看看以下?章:

  1. https://www.oschina.net/question/243681_48522 通过HTTP Headers 进?SQL注?
  2. http://www.91ri.org/4714.html 利?SQLMap进?cookie注?

III. 找到正确的请求页?

通常情况下我们直接在浏览器看到的URL上?的参数就是被带?数据库查询的参数,但是事实上并不是全部的东西都如我们眼睛看到的样?。
注意点:

  1. 我们在填写搜索关键词的时候,?定要找出那些能够搜索出内容的关键词,?如你在实战中搜索dark5,但是?站没有关于dark5的?章内容,就不会出现正常的搜索结果,这样我们把注?语句加在dark5的后?时,是没有办法判断我们的SQL语句是否成功执?,就没有办法达到我们想要的结果了。
  2. 有些?站不?定存在这么多个GET或者POST的请求包的,?如某个?站,你填写好搜索关键词后,就先请求?个GET再请求?个POST包就完事了,但是?多数情况是要么请求?个GET,要么请求?个POST包。主要是看?站是否采?ajax。那么阿?这个?站的注?点就是第3个的POST和第4个的POST请求,因为从这个2个“Response”就能反应出SQL语句执?的结果。

IV. 指定测试位置

* ?这个参数来指定测试语句的位置,这个通常?在注?伪静态页?。也可以?在正常注?点,在??确认某个位置可注?的使?,使?该参数可提高注?效率。
相关伪静态注??章和视频如下:
渗透?记-利?SQLMAP伪静态注?

SQLMap 配合 DNSlog

似懂非懂..
技术分享图片

SQLMap注入伪静态

漏洞发现

经发送到 Repeater 加 ‘ 测试发现是注?。
注?看测试的位置,是在值的后?。 形如 http://www.baidu.com/index.php/Home/English/en_NewsDetail/id/92.html 的URL格式,?概率就是伪静态,即伪装成静态?页的动态链接。这种情况我们是可以测试注?的。 (92‘ 用来尝试测试)

SQLmap注?参数

与正常的测试?法没啥不同,唯?的就是指定测试payload的位置。
?如本例中payload位置是放在 http://www.baidu.com/index.php/Home/English/en_NewsDetail/id/92[payload].html ,那么我们就告诉sqlmap在哪注?就可以了,通过在放置payload位置加上 * 就可以了,即: sqlmap -u
http://www.baidu.com/index.php/Home/English/en_NewsDetail/id/92*.html
剩下的就是按正常的注?即可。

SQLMap处理高权限的SQL Server的注入

找到注入点,用sqlmap注入,查询是否是系统权限sa,后再执行--os-shell,交互式os_shell界面,但不是真正的shell,只是像而已,手注的操作都可以使用,如果无回显,可用远程日志dnslog来判断shell是否成功执行命令结果,或者执行命令不知道; 不必太过拘泥于结果显示回来;
echo 1 > 网站地址\1.txt ,发现是可行的
--sql-shell 权限不够大,执行一些数据库命令

SQLMap处理高权限的mysql的注入

找到注入点,用sqlmap注入,查数据库、当前用户权限,爆出物理路径
是高权限,--os-shell,--sql-shell

SqlMap简单使用

原文:https://www.cnblogs.com/Black-Sweater/p/14050248.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!