一、信息收集
1. 域名
用whois工具收集。
子域名收集工具包括:
- maltegoce
- 浏览器
- 如站长之家
- wydomain
2.端口
常见端口
- 21
- 80
- 443
- 3306
- 3389(远程端口)
- 6379(Redis端口)
探测工具
nmap
使用命令:
nmap -A -v -t4 target
3.敏感信息收集
Google Hacking语法:
site:域名
根据域名搜索intext:关键字
根据关键字搜索intitle:标题关键字
根据标题中的关键字搜索inurl:地址
搜索包含关键字的url
4.真实IP地址
如果存在CDN(内容分发网络),不容易探测到真实IP地址,需要绕过,可以通过ping进行测试。
5.shodan
shodan是特殊浏览器,搜索服务器、摄像头、路由器。
使用前需要先注册,获得API Key以便在命令行和Python等中使用。
浏览器中的常见用法:
- webcam
搜索摄像头。 - port
搜索端口。 - host
搜索地址。 - city
搜索城市。
命令行中使用:
- pip安装
- 初始化
shodan init api_key
- 搜索
Python中的使用
- 初始化
- 搜索
二、sqlmap的参数
先下载,解压即可使用。
1.target
- -u
- -d
- -m
- -r
- -c
2.request
- –method
- –data
- –cookie
- –user-agent
- –referer
- –proxy
- –delay
- –time-out
- –retries
- –randomize
随机参数 - –safe-url
每请求几次,会进行一些正常的请求。
3.Optimization
- –keep-alive
保持长连接 - –null-connection
空连接 - threads
线程。
4.Injection
- –skip
跳过 - –dbms
- –os
- –predix
前缀 - –suffix
后缀
5.Technique
- –technique
- –union-cols
- –union-char
- –union-from
6.Enumeration
- -b
- –dbs
- –dump
- -D
- –where
- –start
- –stop
7.Sqlmap练习
测试环境为墨者学院在线靶场,演示如下:
墨者学院sqlmap布尔盲注测试
三、SQL注入
1.前提条件
- 参数可控
- 参数与数据库有交互
2.分类
根据数据类型
- 字符串
- 整数
根据返回结果
- 显错注入
- 盲注
- 时间盲注
- 布尔盲注
3.GET报错的注入
- 探测是否有注入点
- 通过order by判断字段数
- 通过union select获取表名
- 通过系统表查询字段
- 获取字段值
4.GET基于时间的盲注
举例:
if(ascii(substr(database(),1,1))=115,1,sleep(3))
看页面是否有延迟。
5.GET基于布尔的盲注
举例:
select ascii(substr(database(),1,1)) = N;
6.POST报错的注入
原理:
闭合引号。
7.SQL注入绕过手段
- 双写
- 大小写
- 编码
- MySQL内联注释
- 闭合引号
' or 1=1
' or '1'='1
8.SQL手动注入测试
测试环境为墨者学院在线靶场,测试如下:
墨者学院手动SQL注入测试
四、XSS跨站脚本
1.分类
- 反射型
非持久性攻击 - 存储型
持久性攻击 - DOM型
服务器不会处理响应。
2.payload
<script>alert(document.domain);</script>
123"> <script>alert(document.domain);</script>
"</b><script>alert(document.domain);</script>
" onmouseover=alert(document.domain)
- javascript伪协议
javascript:alert(123)
- CSS特性
background:url("javascript:alert(document.domain);");
- 表单隐藏域
type=hidden
- 实体双写
- base64编码
- 16进制编码
- Unicode编码
- IE浏览器特性
五、文件上传
常见的绕过验证的方式如下:
- 绕过JS验证
- BurpSuite去除JS
- 浏览器去除JS代码并保存,在保存后的HTML页面提交
- MIME-Type
修改文件类型 - 修改文件后缀
- 大小写
- 双写
- 路径拼接