一、SQL注入
1、SQL注入步骤(笔者常用顺序)
①寻找注入点
②判断字符型还是数字型(注入)。(and 1=1;and 2=2)
③字符型注入,判断闭合符。' '' ') ") %) % ......
④联合查询、报错查询、布尔型查询、时间盲注、宽字节
⑤判断列数。orderby
⑥判断显错位。union select 1,2,3, ......
⑦求库、表、字段、数据
⑧找后台,使用工具扫描后台目录
2、报错注入函数、报错注入原理
①常见函数:extractvalue、updataxml、floor等
②原理:在SQL语句中制造XPATH语法错误使查询结果出现到报错信息中,报错信息是数据库报错。
3、常见SQL注入防御(攻先知其防)
①验证和过滤
②所有参数利用" " 或者' '包裹
③对所有数据库用户授权最小权限
④WEB防火墙
⑤定期更新软件
二、XSS
1、原理:在WEB页面中写入恶意脚本使用户浏览页面时获取控制用户浏览器操作的攻击方式。
2、步骤:
①信息收集相关的URL、页面结构、可输入的字段、XSS漏洞。
(真理!渗透测试的本质就是信息收集)
②在可以进行输入的地方(如:输入框、留言板等)输入一些恶意脚本,观察是否会弹出警告框。
③进行cookie劫持。
3、常见的XSS防御(知己知彼)
1、对用户输入和URL参数进行过滤,对输出的HTML进行编码。
2、过滤alert()、prompt()、confirm() 。
三、文件上传
1、步骤:
①测试文件上传点
②识别文件上传限制类型
③上传恶意文件
④执行恶意代码
2、常见绕过方式(Windows、Linux)
①修改文件扩展名
②双写扩展名后缀
③通过添加空格绕过
④紧用前端JS代码绕过
四、文件包含
1、函数:
include()、require()、include_once()、requrie_once()
2、步骤
①构造符合网站上传文件类型的恶意文件
②通过文件上传等手段在网站根目录下传入恶意文件
③通过恶意文件进行攻击操作
五、逻辑漏洞
权限绕过、密码找回、验证码自动识别、客户端回显、绕过、暴力破解、重复使用、支付逻辑漏洞、未进行登录凭证验证