目录
前言
一、搭建环境
二、闯关啦~
1.HTML Injection - Reflected (GET)
Low级别
Medium级别
High级别
2.HTML Injection - Reflected (POST)
3.HTML Injection - Reflected (URL)
Low级别
Medium级别
High级别
4.HTML Injection - Stored (Blog)
Low级别
medium级别
High级别
5.iFrame Injection
Low级别
medium级别
High级别
总结
前言
小🐏的第一篇博客新鲜出炉啦~
bWAPP是一个很全且很受欢迎的靶场 很多师傅强推&最近超喜欢玩靶场 就来玩玩呐~
bWAPP特点:
- 开源的php应用
- 后台Mysql数据库
- 可运行在Linux/Windows Apache/IIS
- 支持WAMP或者XAMPP
一、搭建环境
网盘链接:bWAPP
提取码:d77g
下载好后在 WWW\bWAPP\admin\settings.php 中配置数据库
不知道为啥我的 settings.php 为只读文件 然后我就将mysql数据库密码改为bug啦(懒羊羊再现)
进入127.0.0.1/bWAPP/install.php 点击 here 创建bWAPP数据库 否则就会报错呐~
接着登录吧!(●'◡'●) 127.0.0.1/bWAPP/login.php
用户名:bee 密码:bug
接下来就开始进入关卡闯关啦~
二、闯关啦~
1.HTML Injection - Reflected (GET)
HTML injection && XSS
在XSS攻击期间,攻击者有机会注入并执行Javascript代码,而HTML注入只是使用HTML标签修改页面内容。
Low级别
直接在First name&&Last name中进行xss注入
<script>alert('xiao')</script> <script>alert('yang)</script>
就可以有弹窗呐~
Medium级别
尝试用low的方式结果出错了 用bp进行抓包发现'<' '>'被转码了
去functions_external.php可以看见源码 发现过滤方式为urlcode()函数
urlcode()函数--- 将'<''>'尖括号转义为实体
经过url转码后 方可出现弹窗
%3cscript%3Ealert('xiao')%3C%2Fscript%3E %3cscript%3Ealert('yang')%3C%2Fscript%3E
High级别
过滤方式是htmlentities()函数。(全都编码了 绕不过呀~)
htmlentities()函数--- 将字符转换为 HTML 实体
2.HTML Injection - Reflected (POST)
the same as GET
3.HTML Injection - Reflected (URL)
Low级别
打开页面 发现url后面可以随便接 加上参数 a=
对参数a进行xss 发现'<''>'被转码了 进行抓包 更改参数a的值
forward 发现出现弹窗
Medium级别
查看源码
document对象 :代表整个HTML 文档,可用来访问页面中的所有元素(document.write)document.URL:设置URL属性从而在同一窗口打开另一网页
document.write():动态向页面写入内容
用之前的HTML编码的语句结果还是不行那么二次编码?还是不行
第一次的时候用low的方法发现不起作用 第二次可以了?(o|o)
High级别
查看源码
使用了htmlspecialchars()函数
htmlspecialchars()函数 -- 会把预定义的字符(&,',",<,>)转换为 HTML 实体
无法绕过
4.HTML Injection - Stored (Blog)
Low级别
直接注入
medium级别
查看源码
addslashes() 函数-- 返回在预定义字符之前添加反斜杠的字符串
如果是sql注入还可以进行宽字节注入但是html注入不可以。
直接试 fine~
High级别
查看源码
htmlspecialchars()函数-- 会把预定义的字符(&,',",<,>)转换为 HTML 实体 无法绕过
5.iFrame Injection
iframe:在当前页面可以显示别的页面内容的技术
Low级别
没有对参数进行过滤,可以控制 Param 参数的值
a.查看phpinfo.php文件
ParamUrl=../../../phpinfo.php&ParamWidth=500&ParamHeight=500
b.尝试xss
ParamUrl="></iframe><script>alert('yang')</script><ifram&ParamWidth=500&ParamHeight=500
"> 用来闭合
c.跳至百度页面
medium级别
查看源码
addslashes会在数据库查询中需要引用的字符< ',",\ >前返回一个反斜杠字符串
可以看出不能控制paramurl的输入,所以只能通过控制ParamHeight和ParamWidth来实现注入
闭合绕过:
ParamUrl=robots.txt&ParamWidth=250"></iframe><script>alert(/yang/)</script>&ParamHeight=250
High级别
htmlspecialchars()函数-- 会把预定义的字符(&,',",<,>)转换为 HTML 实体 无法绕过
总结
原谅不喜欢用 , 。の小🐏 下篇见啦~ 欢迎大佬指正呐~
参考文章:这位师傅是大佬呐~多学习!