免责声明:
由于传播、利用本公众号所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
正文:
上篇:
以下打码有漏,但是无妨,为本地搭建的,非真实站点
后台任意文件上传
漏洞点
/templates/img_check.php
先找到文件上传判断方式,这里$arrType表示的文件类型的允许列表中
跟着去调用去看$arrType,发现允许上传下面几种格式,也就是说Content-Type中只允许这几种方式,应属于白名单,这时候就很简单了
抓包看见Content-Type类型是application/octet-stream
也可以直接上传图片马,在修改后缀
然后将Content-Type类型改为image/jpg,就接着放包,就成功上传,然后访问
后台任意文件删除
漏洞点
if (! empty($_GET['fname'])) {
unlink($dir.$_GET['fname']);
}
这段代码检查𝐺𝐸𝑇数组中是否存在非空的𝑓𝑛𝑎𝑚𝑒参数。如果存在𝑓𝑛𝑎𝑚𝑒参数,该代码通过调用𝑢𝑛𝑙𝑖𝑛𝑘函数删除位于GET数组中是否存在非空的fname参数。如果存在fname参数,该代码通过调用unlink函数删除位于dir.$_GET[‘fname’]的文件。unlink函数通过文件路径删除文件。
跨目录到上级来尝试删除
http://127.0.0.1/templates/img_check.php?fname=../1.php
后台sql注入
找到代码地址定位关键参数:
/templates/message_check.php?search_cat=item&keyword=1
从代码上来看没有任何的过滤和防护措施,可直接做查询,这里的变量是模糊匹配,考虑闭合
搜索框处验证
点击查询会出现的返回了所有结果,这个也是默认点击查询的返回结果,说明返回正常
%' and 1=1--'
此时尝试1=2,返回其他信息,基本可考虑盲注
%' and 1=2--'
尝试时间盲注,判断是否存在延迟函数,使用sqlmap也验证得到时间盲注
' and sleep(5) --+'
未授权访问后台注入
基本上存在一个注入点就可能存在多个注入点,毕竟同一个程序猿的思路是一样的,这里比较好一点的是可以未授权访问到页面,再进行注入
漏洞点
templates/message_count_item.php?s=webname&k=1
首先来看未授权访问,它这个页面是忘记做授权了的,因为这个php中它没有去做授权的操作
来对比下其他文件下面,正常逻辑应该是它使用了
require_once ('../includes/page_validate.php');
去包含了验证登录授权的文件,但是上面文件并没有,所以造成了未授权的情况
接着来看这个注入,同样和上面一样的,没有做过滤等,造成了sql注入
XSS
点位如上相同,也是未授权可以访问到的
templates/message_count_item.php?s=webname&k=1
这里的$_GET[‘k’] 和 $keyword 都是指获取到的搜索关键词
往下找到输入语句,𝐺𝐸𝑇[′𝑘′]和′GET[′k′]和′_GET[k]’ 是相同的,这里知道他要打印出我们可控的语句,此时并没有发现过滤之类的
构造xss
<script>alert("G3et")</script>
文章作者: G3et
文章链接: https://www.g3et.cn/2023/ji-shang-zhang-jian-dan-dai-ma-shen-ji-yi-bo
原文始发于微信公众号(乌雲安全):实战|一个IP Getshell续篇
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论