[GKCTF 2020]cve版签到

首先看到有一个链接,下面有一个提示

You just view *.ctfhub.com

意思就是你只能访问的链接后缀得是.ctfhub.com

我们点进链接

第一眼没有发现很明显的提示信息,但是我们看到url处有传参名url。

查看源代码和请求体信息

发现hint,提示我们访问本地,联想到刚刚发现的url参数,意思就是让我们访问http://127.0.0.1/,但是又要我们以.ctfhub.com结尾,这里可以想到%00截断。

截断是操作系统层的漏洞,由于操作系统是C语言或汇编语言编写的,这两种语言在定义字符串时,都是以\0(即0x00)作为字符串的结尾。操作系统在识别字符串时,当读取到\0字符时,就认为读取到了一个字符串的结束符号。因此,我们可以通过修改数据包,插入\0字符的方式,达到字符串截断的目的。

可以构造payload:/?url=http://127.0.0.1%00.ctfhub.com

tips告诉我们要以123结尾,把1改为123即可

[羊城杯 2020]easycon

打开网页,啥有用的信息也没找到,一般来说就是看网页,看源代码,请求体响应体,cookie等等信息,都找不到就扫,这题扫出来两个状态码为200的url

这两个url走哪个后面做题流程都是一样的,我以第一个url做的,唯一的区别就是带login的图片显示不正常,不过不影响做题。

加载网页后会有一个弹窗,显示eval post cmd

大致推测出是有eval危险函数可以执行任意命令,post传参,参数名是cmd

试一下,成了。可以执行

读取敏感文件

丢进赛博厨子

然后出flag

[NISACTF 2022]babyupload

打开网页,第一眼是文件上传,不过要长一个心眼,先从简单的情况入手,看源代码,请求体响应体,cookie等等信息。

这题在源代码发现了/source路由,下载可以得到源码

再就是代码审计,初始页面的文件上传。不能上传文件名有.的文件,即文件名不能有后缀

如果有.就报错”Bad filename!”。如果正确,则保存到数据库,存的时候是uploads/文件名,读取的时候是file/uid。

利用/file/uid可以读取我们上传的文件,在这里用到了一个函数os.path.join,这个函数存在绝对路径拼接漏洞。

os.path.join函数用于将多个文件路径连接成一个组合的路径。第一个函数通常包含了基础路径,而之后的每个参数被当作组件拼接到基础路径之后。这个函数有一个特性,如果拼接的某个路径以 / 开头,那么包括基础路径在内的所有前缀路径都将被删除,该路径将视为绝对路径

在本题中,如果你后面传的文件名为/flag,那拼接的时候会将前面的各级路径全部删掉,读取的就是根目录的flag文件。

所以我们可以做到以下操作:

打开burp,随便传一个文件,抓包拦截住,将文件名改成/flag,然后发送。

得到flag

[MoeCTF 2022]baby_file

打开网页是一串php代码,文件包含。

看到一句话,有秘密?看到在cookie处有一个flagisiin参数,对应的是/f14g.php

但是404,别的地方也没什么有用信息.

扫描得到一个flag.php

直接用/?file=flag.php会报错,这里用伪协议读取

/?file=php://filter/read=convert.base64-encode/resource=flag.php

得到文件内容

丢进赛博厨子,得到flag

[GDOUCTF 2023]受不了一点

这题一打开看到挺多代码,但是其实只有三个地方我们需要绕过,因为第三层绕过就出flag

(NSSCTF平台上的是这样的,原题可能涉及变量覆盖的知识点,感兴趣的可以看看那个)

以下全部做题过程都是用的hackbar,安装教程参考hackbar安装教程

第一层:

if($_POST['gdou']!=$_POST['ctf'] && md5($a)===md5($b))

只需要数组绕过即可;

第二层:

if(isset($_COOKIE['cookie'])){ if ($_COOKIE['cookie']=='j0k3r'){

用hackbar改Cookie参数为cookie=j0k3r即可;

第三层:

if(isset($_GET[‘aaa’]) && isset($_GET[‘bbb’])){ $aaa=$_GET[‘aaa’];
$bbb=$_GET[‘bbb’]; if($aaa==114514 && $bbb==114514 && $aaa!=$bbb){

弱比较,其中一个变量在数字后面加一个字母即可

payload如下: