SQL注入写入Webshell(Lines terminated by写入)

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

实验:

1.当mysql注入点为盲注或报错,Union select写入是不能利用的,那么可以通过分隔符写入(SQLMAP的–os-shell命令,所采用的就是这种方式)

2.条件:secure_file_priv支持web目录文件导出;

              数据库File权限;

              获取物理路径。

3.实验步骤:

 1)判断是否存在注入点。

 页面仅显示有无用户,无其他报错信息,初步判断用布尔盲注。

 

 无差别,==》不是数字型注入。

 真假两种情况回显不一致,==》存在布尔盲注点。

2)尝试用 union select 1, @@datadir #;找到物理路径,但是这是个布尔注入,只返回真假。因为是同一网站,尝试使用上篇文章找到的物理路径来写入webshell。

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

 3)验证:

 

 

知识补充:

1.lines-terminated-by:指定行结束符,默认值就是换行符。

用法举例:

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

在输出每条记录的结尾或开始处插入webshell内容,所以即使只查询一个字段也可以写入webshell内容。lines terminated by 可以理解为 以每行终止的位置添加 xx 内容。

2.#是什么?

它是 MySQL的版本的行注释分隔符。在标准SQL中,行注释分隔符为-- 

3.sql语句如果只写一句,可以不加;

  如果写多条sql语句,必须加;用做结束符号。(因为不加 它误以为是一条sql)

SELECT first_name, last_name FROM users WHERE user_id = '1' and 1=3#';

此处用#注释不会报错,因为后台就一条sql查询语句。

4.为什么127.0.0.1有时候显示WWW网站根目录下的内容,有时显示phpstudy下的所有内容?

和httpd.conf这个配置文件有关,如图:

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

(5条消息) DVWA——SQL盲注(全等级)_dvwa sql盲注_一只躺平的猪的博客-CSDN博客

(5条消息) DVWA之sql注入——盲注_dvwa布尔盲注_梓桐sama的博客-CSDN博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值