目录
[SWPUCTF 2022 新生赛]1z_unserialize
[NISACTF 2022]checkin
1、题目
2、知识点
010编辑器的使用、url编码
3、思路
打开题目,得到源码
审计代码,题目需要我们上传两个变量的内容,根据题目输入,结果没有出现flag,题目有提示,复制源码,用010Editor打开
发现多了很多内容,难怪会没有出现flag
我们将需要上传的内容的16进制加上%重新上传
第一个参数的内容是正常的,构造出来的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
得到flag:NSSCTF{09918f4c-0337-4344-84a3-33c306a12e9e}
[NISACTF 2022]babyupload
1、题目
2、知识点
php代码审计、os.path.join()函数
3、思路
打开题目,上传一个文件,发现上传不了
正常的文件都上传不了,右键查看源代码
发现有一个页面,访问该页面,下载一个www.zip包,打开里面的python程序,发现是代码
对代码进行审计
那这就有点意思了,正常文件都是有后缀名的,有. 的,要怎么绕过呢?
往下翻,发现os.path.join()函数
一般flag都是命名为flag文件,放在根目录下,我们可以上传一个文件,改名为/flag,利用os.path.join()这个函数
注意要放包
得到flag:NSSCTF{9485af6f-488e-46a9-91cc-e7b879c23d00}
[SWPUCTF 2022 新生赛]1z_unserialize
1、题目
2、知识点
php反序列化
3、思路
审计代码
->用来引用一个类的属性(变量)、方法(函数)
所以,我们可以构造系统执行命令,system(cat /flag)
system()赋给$lt,cat /flag给$lly,这样就可以得到flag了,POC如下
POST方式上传nss参数的内容
得到flag:NSSCTF{b17cd668-888d-4a73-8881-8e2c2120ea87}
这篇文章就写到这里,哪里不足的或者不懂的欢迎批评指出