常见工具使用
WEB
dirsearch(目录扫描)
用于扫描网站下的目录或文件,原理就是通过字典在url后添加目录然后发包看响应,如果响应为200就说明有这个目录或文件
基本用法
python dirsearch.py -u http://xxx |
- 注意
- 如果扫描中发现有/.git为403响应,可以尝试使用
git_extract
去提取文件,举例ctfshow-web-红包题第七弹
- 安装教程
- 命令
命令选项 | 参数/说明 | 示例 |
---|---|---|
基本命令 | ||
-u URL |
指定目标URL | -u http://example.com |
-l FILE |
从文件读取多个目标URL | -l urls.txt |
扫描配置 | ||
-e EXTENSIONS |
指定文件扩展名(逗号分隔) | -e php,html,txt |
-w WORDLIST |
使用自定义字典文件(默认内置字典在db/ 目录) |
-w /path/to/wordlist.txt |
-t THREADS |
设置线程数(默认25) | -t 50 |
-r |
递归扫描(发现目录后继续深入) | -r |
-F |
强制为所有字典条目添加扩展名(需搭配-e 使用) |
-F -e php |
--timeout TIMEOUT |
设置请求超时时间(默认15秒) | --timeout 20 |
过滤与输出 | ||
-x STATUS_CODES |
排除指定状态码(如403,404) | -x 403,500 |
--exclude-text TEXT |
排除包含特定文本的响应(如“Not Found”) | --exclude-text "404" |
-o FILE |
将结果保存到文件 | -o results.txt |
--format FORMAT |
输出格式(支持plain /json /xml ,默认plain) |
--format json |
代理与请求头 | ||
--proxy PROXY |
设置代理服务器 | --proxy http://127.0.0.1:8080 |
-H HEADER |
添加自定义请求头 | -H "User-Agent: Test" |
--cookie COOKIE |
设置Cookie | --cookie "session=abc123" |
其他选项 | ||
--random-user-agents |
随机化User-Agent头(绕过简单WAF) | --random-user-agents |
--delay DELAY |
设置请求间隔延迟(秒) | --delay 1.5 |
-f |
美化输出(显示目录树结构) | -f |
-I STATUS_CODES |
仅忽略指定状态码(与-x 相反) |
-I 404 |
sqlmap(sql注入自动化检测工具)
- 主要就是通过命令来对指定url进行sql注入的测试,一般来说简单题自己会,难题跑不出,不过学会使用还是很好的
- 基本用法
python sqlmap.py -u http://xxx?xx=xx -dbs --batch |
- 安装教程
- 命令
类别 | 参数 | 功能说明 |
---|---|---|
目标指定 | -u URL |
指定目标 URL,检测注入点(如 -u "http://example.com?id=1" ) |
-m 文件路径 |
从文件中批量读取 URL 进行扫描(如 -m urls.txt ) |
|
-r 文件路径 |
从文件中加载 HTTP 请求(常用于 POST 注入,如 BP 抓包内容) | |
--dbms 数据库名字 |
指定数据库进行注入 | |
--technique 代码 |
指定方式进行注入,代码如下:B(布尔)、E(报错)、U(union)、S(堆叠)、T(时间)、Q(内联查询) | |
数据库操作 | -D 数据库名 |
指定目标数据库(如 -D mysql ) |
-T 表名 |
指定目标表(如 -T users ) |
|
-C 列名 |
指定目标列(如 -C username,password ) |
|
--dbs |
列出所有数据库 | |
--current-db |
获取当前数据库名 | |
--tables |
列出指定数据库的所有表 | |
--columns |
列出指定表的所有列 | |
--schema |
显示数据库表结构(包括字段类型) | |
--dump |
导出指定表的数据(如 --dump -T users ) |
|
--start 行数 |
指定导出的起始行(如 --start 10 ) |
|
--stop 行数 |
指定导出的结束行(如 --stop 20 ) |
|
--search |
搜索数据库/表/列(如 --search -C password ) |
|
会话与身份验证 | --cookie "值" |
设置 Cookie 进行身份验证或绕过限制(如 --cookie "PHPSESSID=abc123" ) |
请求配置 | --method=GET |
指定 HTTP 请求方法(如 --method=POST ) |
--referer "值" |
伪造 Referer 头(如 --referer "https://google.com" ) |
|
--user-agent "UA" |
自定义 User-Agent(如 --user-agent "Mozilla/5.0" ) |
|
--random-agent |
使用随机 User-Agent 绕过检测 | |
绕过防护 | --tamper "脚本名" |
使用篡改脚本绕过 WAF(如 --tamper "space2comment" ),具体可以看下这篇文章 |
输出控制 | --batch |
自动选择默认选项,无需交互确认 |
性能优化 | --threads 数值 |
设置并发线程数(1-10,如 --threads 5 ) |
--proxy "地址" |
通过代理发送请求(如 --proxy "http://127.0.0.1:8080" ) |
|
检测等级 | --level=1-5 |
设置检测等级(1-5,默认 1,等级越高检测越全面) |
风险控制 | --risk=0-3 |
设置风险等级(0-3,默认 1,高风险可能破坏数据) |
信息获取 | -b |
获取数据库版本(Banner) |
BurpSuite(抓包工具)
对请求抓包来进行修改或者攻击,常用模式有重发器和攻击器,攻击器可以用来实现弱口令爆破,重发器主要是对请求包进行修改后发出,比如添加cookie等,更高级的用法还在学习中
phpStudy(本地环境)
antSword中国蚁剑(连马)
- 当向网站传入一句话木马后可以通过蚁剑连接,蚁剑可提供的服务也很多,比如绕过禁用函数等,用里面的插件就可以了,不过平时我还是喜欢老老实实POST传参
- 安装教程,关于里面插件
要梯子,这个之前在做ctfshow_web-web12的时候学过,结果就是连手机热点也可以访问,所以没有梯子可以试下连热点
开发者工具F12(网页必用)
- 做题差不多必看吧,不管是找元素还是控制台来控制前端代码,都挺有用的,而且hackbar插件也要在里面使用
- 至于源码的话,有几种方法,ctrl+U,右键查看源代码,F12,
url
前加view-source:
这些都行,还有一些姿势就见SQCTF-WP
hackbar(网页传参)
- 对网页进行GET/POST传参,也可以进行部分编码编解码功能,而且也可以通过mode中的row模式来看到响应包,挺好用一个工具,不过感觉火狐那个版本不好用,推荐
chrome
商店里面找 - 下载地址,安装第一个就行
- 使用
git_extract(提取git泄露文件)
- 主要就是提取
.git
文件夹下的文件,重建项目源码,尤其是多人共同用git写项目时,可能信息泄露 - 基本用法
python git_extract.py http://xxx/.git |
- 下载地址,GitHub上下载源码后
cmd
运行就行,较GitHack
较为方便,两者功能相似
fenjing焚靖(ssti注入自动化检测工具)
在SQCTF第一次使用,也正是这样产生了写这篇文章的想法。主要还是图形化页面来实现
ssti
检测,get shell
后类似于连马基本用法
vv_fenjing\Scripts\activate.bat //进入虚拟环境 |
命令
命令 | 功能 | 选项 | 描述 |
---|---|---|---|
scan | 扫描指定的网站 | -u, --url TEXT |
需要扫描的URL |
-e, --exec-cmd TEXT |
成功后执行的shell指令,不填则进入交互模式 | ||
--interval FLOAT |
每次请求的间隔 | ||
--detect-mode TEXT |
检测模式,可为accurate或fast | ||
--user-agent TEXT |
请求时使用的User Agent | ||
--header TEXT |
请求时使用的Headers | ||
--cookies TEXT |
请求时使用的Cookie | ||
crack | 攻击指定的表单 | -u, --url TEXT |
form所在的URL |
-a, --action TEXT |
form的action,默认为当前路径 | ||
-m, --method TEXT |
form的提交方式,默认为POST | ||
-i, --inputs TEXT |
form的参数,以逗号分隔 | ||
-e, --exec-cmd TEXT |
成功后执行的shell指令,不填则成功后进入交互模式 | ||
--interval FLOAT |
每次请求的间隔 | ||
--detect-mode TEXT |
分析模式,可为accurate或fast | ||
--user-agent TEXT |
请求时使用的User Agent | ||
--header TEXT |
请求时使用的Headers | ||
--cookies TEXT |
请求时使用的Cookie | ||
get-config | 攻击指定的表单,并获得目标服务器的flask config | -u, --url TEXT |
form所在的URL |
-a, --action TEXT |
form的action,默认为当前路径 | ||
-m, --method TEXT |
form的提交方式,默认为POST | ||
-i, --inputs TEXT |
form的参数,以逗号分隔 | ||
--interval FLOAT |
每次请求的间隔 | ||
--detect-mode TEXT |
分析模式,可为accurate或fast | ||
--user-agent TEXT |
请求时使用的User Agent | ||
--header TEXT |
请求时使用的Headers | ||
--cookies TEXT |
请求时使用的Cookie |
arjun(参数爆破工具)
- 安装
pip install arjun |
- 命令
选项/参数 | 说明 |
---|---|
-h, –help | 显示帮助信息并退出 |
-u URL | 指定目标URL |
-o, -oJ JSON_FILE | 指定JSON格式的输出文件路径 |
-oT TEXT_FILE | 指定文本格式的输出文件路径 |
-oB [BURP_PROXY] | 输出到Burp Suite代理,默认地址为127.0.0.1:8080 |
-d DELAY | 请求之间的延迟(秒),默认值:0 |
-t THREADS | 并发线程数,默认值:5 |
-w WORDLIST | 指定字典文件路径,默认值:{arjundir}/db/large.txt |
-m METHOD | 请求方法(GET/POST/XML/JSON),默认值:GET |
-i [IMPORT_FILE] | 从文件导入目标URL列表 |
-T TIMEOUT | HTTP请求超时时间(秒),默认值:15 |
-c CHUNKS | 每次发送的参数块大小(参数数量) |
-q | 静默模式,不显示输出 |
–rate-limit RATE_LIMIT | 每秒最大请求数限制,默认值:9999 |
–headers [HEADERS] | 添加请求头,多个头用换行分隔 |
–passive [PASSIVE] | 从被动源(如Wayback/CommonCrawl/OTX)收集参数名 |
–stable | 优先稳定性而非速度 |
–include INCLUDE | 在每个请求中包含固定数据 |
–disable-redirects | 禁用重定向 |
–casing CASING | 参数命名风格(如:like_this/likeThis/likethis) |
- 使用
arjun -u http://xxx [-m GET/POST] |
flask_unsign(session加/解密)
- 安装
pip install flask-unsign |
- 使用
解密
flask-unsign --decode --cookie 'eyJpc19hZG1pbiI6MCwidXNlcl9pZCI6ImFub255bW91cyJ9.ZyyyoQ.M_fymfx7RJybrgZwoZv_hp2wLe0' |
加密
flask-unsign --sign --cookie "json数据" --secret '密钥' |
如果只是解密的话也可以用脚本
#!/usr/bin/env python3 |
CRYPTO
sagemath(整合的数学软件,基于python)
- 用的不是太多,每次就是上去跑下脚本
- 安装教程
yafu(RSA因数分解工具)
- 下载
yafu download | SourceForge.net
- 使用
yafu-x64.exe factor(6) |
注意:
(1)n为十进制
(2)txt文件结尾必须有一个换行符,如下图
(3)该命令会删除这个txt,请注意保存。
MISC
mp3stego(mp3音频隐写提取)
- 下载
https://www.petitcolas.net/steganography/mp3stego/
命令
-X 提取隐藏数据
-P用密码用于嵌入
-A 编写AIFF输出PCM声音文件
-s仅在此SB(仅调试)
inputBS 编码音频的输入位
outPCM 输出PCM声音文件(DFLT输入+.AIF | .pcm)
outhidden 输出隐藏的文本文件(dflt inputbs+.txt)使用
将需要加/解密的音频放在MP3stego同一文件夹下
然后在cmd
中输入以下命令
Decode.exe -X -P 密码 要尝试提取的文件名 |
UsbKbCracker(USB流量文本提取)
- 下载
https://github.com/P001water/UsbKbCracker
命令
python UsbKeyboardDataexp.py -f pcapfile -e fieldvalue [-Y “xxx”]-f
流量文件-Y
过滤器条件[选项可选]-e
导出协议字段使用
先将wireshark
中的tshark
放进环境变量中,达到如下效果
将需要解码流量放在同一文件夹下,cmd
输入以下命令
python UsbKbCracker.py -f file -e usbhid.data |
pcap2track(USB流量轨迹提取)
- 下载
https://github.com/p0ise/pcap2track
- 使用
还是要确保tshark
可用,然后cmd
以下命令
python pcap2track.py [-h] [-o OUTPUT] pcapng_file [button_mask] |
snow隐写提取
- 下载
https://gitcode.com/open-source-toolkit/a4d1d/
- 使用
隐写 |
RStudioPortable(镜像提取)
- 下载
- 使用
图形化页面,跟着操作使用就行了,在SWCTF
第一次遇到,感觉img
镜像提取挺有用