惊雷无声 发表于 2024-6-15 00:55:00

NSSCTF-Web题目6

目录

checkin
1、题目
2、知识点
3、思路
babyupload
1、题目
2、知识点
3、思路
1z_unserialize
1、题目
2、知识点
3、思路
checkin

1、题目

https://img-blog.csdnimg.cn/direct/794ba8fec0cc481a9cdef9f3b4a97db5.png
2、知识点

010编辑器的利用、url编码
3、思路

打开题目,得到源码
https://img-blog.csdnimg.cn/direct/1cf3ff8852c5414692c38b27f0db232b.png
审计代码,题目必要我们上传两个变量的内容,根据题目输入,结果没有出现flag,题目有提示,复制源码,用010Editor打开
https://img-blog.csdnimg.cn/direct/379a753665d249ef8f9468f5601b43d2.png
发现多了很多内容,难怪会没有出现flag
我们将必要上传的内容的16进制加上%重新上传
https://img-blog.csdnimg.cn/direct/50e9c6f881b94978ac90e4ff6c235be5.png
https://img-blog.csdnimg.cn/direct/5640e6702adb4a92a917e0acdee0f273.png
第一个参数的内容是正常的,构造出来的payload为
http://node5.anna.nssctf.cn:26298/?ahahahaha=jitanglailo&%E2%80%AE%E2%81%A6%55%67%65%69%77%6F%E2%81%A9%E2%81%A6%63%75%69%73%68%69%79%75%61%6E=%E2%80%AE%E2%81%A6%20%46%6C%61%67%21%E2%81%A9%E2%81%A6%4E%31%53%41%43%54%46
https://img-blog.csdnimg.cn/direct/058f7240d9d84008ac4972bf466cbbb4.png
得到flag:NSSCTF{09918f4c-0337-4344-84a3-33c306a12e9e}
babyupload

1、题目

https://img-blog.csdnimg.cn/direct/08ee2f729d0143bc8b99aa25190e1bec.png
2、知识点

php代码审计、os.path.join()函数
3、思路

https://img-blog.csdnimg.cn/direct/60cf9c5c02354e12a7d805e6f2093cad.png
打开题目,上传一个文件,发现上传不了
https://img-blog.csdnimg.cn/direct/3860c9f9719842fea3bf7ddd091e04f8.png
正常的文件都上传不了,右键查看源代码
https://img-blog.csdnimg.cn/direct/c5eb1fd383644bd398364ed410a91835.png
发现有一个页面,访问该页面,下载一个www.zip包,打开内里的python程序,发现是代码
对代码举行审计
https://img-blog.csdnimg.cn/direct/91a81685bf3547d4bcae336db493aff7.png
那这就有点意思了,正常文件都是有后缀名的,有. 的,要怎么绕过呢?
往下翻,发现os.path.join()函数
https://img-blog.csdnimg.cn/direct/40c380e811d14c40b31b6126c9b90881.png
   os.path.join()
作用:用于拼接文件路径,可以传入多个路径,传入文件时,
如果没有以“/”开始的参数,函数会主动加上,
如果是以“/”为开始的参数,函数会从最后一个"/"开始拼接,之前的全部舍弃。 
同时存在以‘’./’与‘’/’’开始的参数,以‘’/’为主,从最后一个以”/”开头的参数开始拼接,之前的参数全部抛弃。
只存在以‘’./’开始的参数,会从”./”开头的参数的上一个参数开始拼接。
一般flag都是定名为flag文件,放在根目录下,我们可以上传一个文件,改名为/flag,利用os.path.join()这个函数
https://img-blog.csdnimg.cn/direct/90e52456dd2f4186967636e9fb0ba4ff.png
注意要放包
https://img-blog.csdnimg.cn/direct/42e8fe47033549bf810d6a4ef53b670f.png
得到flag:NSSCTF{9485af6f-488e-46a9-91cc-e7b879c23d00}
1z_unserialize

1、题目

https://img-blog.csdnimg.cn/direct/65550c0b99aa4e33ac1b9160b88e3019.png
2、知识点

php反序列化
3、思路

https://img-blog.csdnimg.cn/direct/a7a50330cb3c4d7fb21c0438b518be07.png
审计代码
   __destruct()
会将对象被调用完后举行销毁,也就是代码执行完后执行
->用来引用一个类的属性(变量)、方法(函数)
   $a = $this->lt;
将lt的值赋给变量a
$a($this->lly);
参加a是一个函数,想当于a(lly)
所以,我们可以构造系统执行下令,system(cat /flag)
system()赋给$lt,cat /flag给$lly,如许就可以得到flag了,POC如下
   <?php
class lyh{
    public $url = 'NSSCTF.com';
    public $lt='system';
    public $lly='cat /flag';
}
$poc=new lyh();
echo serialize($poc);
?>
https://img-blog.csdnimg.cn/direct/075c53f46e9c4afd94b5f9b480136bbe.png
POST方式上传nss参数的内容
https://img-blog.csdnimg.cn/direct/9db7b235760e48519d922566717663b9.png
得到flag:NSSCTF{b17cd668-888d-4a73-8881-8e2c2120ea87}
这篇文章就写到这里,哪里不足的大概不懂的接待品评指出

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: NSSCTF-Web题目6