渗透测试个人总结贴
报名入口来源:中国教育在线 2022-06-01
OWASP TOP 10
1、注入2、失效的身份认证和会话管理3、XSS 4、脆弱的访问控制 5、安全配置错误6、敏感数据暴露7、不充足的攻击检测与预防8、CSRF 9、应用已知脆弱性的组件10、未收保护的API
Sql注入
原理:通过输入构造域名或页面请求的字符串达到欺骗服务器执行恶意SQL命令。有布尔型注入(构造and条件判断页面返回情况获得信息),报错型注入(构造能够报错的sql命令获得报错信息),联合查询注入(union),多语句查询注入(select;select),基于时间延迟注入(加入判断和时间延迟语句)。
修复方式:
1、 过滤输入语句;
2、参数化处理
XSS
跨站脚本攻击,攻击者将恶意脚本代码注入到网页中,当其他用户浏览这些网页时执行其中的恶意代码。
修复方式:
1、 使用xss filter:输入过滤以及输出编码;
2、 Web安全编码规范:将能触发XSS的字符使用相应的HTML实体代替(<转成&It);
3、 使用浏览器插件:Firefox的NoScript插件,IE8的XSS Filter;
4、 使用HTTP-only的cookie;
CSRF
跨站请求伪造,源于web的隐式身份验证机制,冒充其他用户在站内的正常操作。
测试方法:
1、修改请求包中Referer值,生成CSRF POC测试;
修复方式:
1、 代替GET使用POST提交方式;
2、 客户端提交表单增加伪随机数的hash值,在服务端验证hash;
3、 使用token方式进行身份验证;
4、 为表单增加验证码;
5、 增加http的Referer验证,判断请求是否同域;
网站劫持
主要被黑帽用来做SEO(Search Engine Optimization,搜索引擎优化)。
实现网站劫持的步骤:
1、 入侵相关网站
2、 在网站中插入Js或修改配置文件,增加相应的劫持代码。一般会加入判断条件,一般会根据IP归属地、refer(是否是爬虫)和user-agent(设备)。
3、 大多数判断如果是人工会返回正常的网站;如果是爬虫会返回相关黑客设置的网站。
测试方法:
1、 对于前段劫持,可以通过抓包和源码分析来查看相应js代码。
2、 对于服务器劫持,对网站的全局脚本文件(例如conn.php)进行完整性测试。生成hash值定期完整性测试可以有效防止网站劫持。