jarvisoj-web-wp

本文档包含了多个网络安全挑战的解决过程,涉及curl命令、HTTP代理、PHP反序列化、SQL注入、代码审计、文件上传漏洞、XXE注入等多个技术点。通过分析源码、构造特定请求和利用漏洞,成功获取各挑战的flag。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Port51

这是一道pctf的原题,,显然要用公网ip端口进行访问,这时候用到了curl命令,使用curl –local-port http://web.jarvisoj.com:32770/就可以得到flag,但是貌似服务器出了点儿问题,所以不弹flag了

LOCALHOST

,这个题目和上面一道题目差不多,都很基础,用火狐的代理,直接就可以了,

Login

,一开始进去没什么思路,点开消息头以后,发现hint,然后构造绕过,==不知道怎么构造绕过,百度了一下这个语句,直接出md5加密后的sql注入,利用已给的ffifdyop,提交得到flag.

神盾局的秘密

这道题目,可以称得上是一道好题了,查看发送的包,发现有,我们对base64的密文进行解密,得到shield.jpg,猜测是文件读取,用index.php做测验,果然出现问题了,读取源码
<?php 

        require_once('shield.php');

        $x = newShield();

        isset($_GET['class'])&& $g = $_GET['class'];

        if(!empty($g)) {

               $x =unserialize($g);

        }

        echo$x->readfile();

?>,知道还跟shield.php有关,再读取shield.php,得到关键代码,<?php

        //flag is inpctf.php

        class Shield{

               public$file;

               function__construct($filename = '') {

                       $this-> file = $filename;

               }

然后构造php反序列提交,class=O:6:”Shield”:1:{s:4:”file”;s:8:”pctf.php”;},在查看器里看到flag,

In aMess

这是一道经典的代码审计题目,结合了几个危险函数的绕过问题,先查看源码,得到,访问得到,这就是代码审计绕过了,这道题集多种奇淫巧技于一身,这里是时候好好回顾总结一波了,先从简单的开始说,$id=0这个绕过,用php的弱类型就可以了,构造id=0a就可以绕过了,再说下一个php的弱类型,是基于eregi函数的弱类型,eregi函数的弱类型有几种绕过手段,之前在网上看到有两种,现在不知道为什么就只能找到一种了,就是%00的绕过,然后长度大于5,%00之后的第一个数字是4,还剩下一个绕过,这个技巧性非常高,这里说两种做法,第一种是通过php伪协议,利用php://input流,post一个字符串,这时候post字符串被a截获,就成功实现了,还有一种比较麻烦的绕过方式,就是在自己的服务器上放一个名字随便的文件,内容就是那句话,把a赋值成为该文件的ip目录,但是这里值得注意的一点就是对.进行了过滤,那么,仔细考虑一下,ip可以转换成10进制,转换方式就是a.b.c.d可以转换成a*256^3+b*256^2+c*256^1+d,这样也可以绕过,在绕过所有的条件之后得到一个ComeON!!! {/^HT2mCpcvOLf},猜测可能是一个文件,直接访问,得到http://web.jarvisoj.com:32780/%5eHT2mCpcvOLf/index.php?id=1,看到id,猜测是sql注入,这道题目也算是sql里面比较经典的一道题目,过滤了空格等字段,不过空格可以用/*1*/绕过,unoin可以用重写绕过,然后爆破最后就可以得到flag

Flag在管理员手里

这道题跟之前在中国矿业大学做得一道题一样,很容易就猜到是hash拓展攻击,但是并不知道攻击如何构造,猜测会有源码泄露,或者是文件备份,swo,swp试了都不行,最后php~下载源码,这里也积累一个小小的姿势,对于这种文件备份的题目,在下载备份文件之后,可以用vim –r文件进行恢复,(ps:不用看乱七八糟的代码了,恢复也是有前提的,必须是.swp,.swo等标准vim备份文件),看这个题目,发现跟之前见过做过的hash拓展不一样,于是各种找找,https://blog.skullsecurity.org/2014/plaidctf-web-150-mtpox-hash-extension-attack,这是国外的一个web大神写的比较详细的介绍。。本智障英语水平不高,也就看个大概,后来在bendawang师傅的调教下,终于搞懂了hash拓展攻击的原理,这样,我们用国外大神写的脚本,就可以进行爆破了,但是这个题目的逻辑是要让我们用逆序的序列化伪造逆序的hash值作为正向的登陆,所以登陆的时候还要把role改成正序

Chopper

这道题是iscc的一道原题,看了别人的wp才想到的。。首先进去有个管理员登陆,点进去,发现forbidden了,自己做的时候就直接退出了,看了别人的wp才知道要看源码,提示管理员的ip地址,在访问Index.php的时候留了个心眼,用burp抓包,发现有一个,好像是文件访问,于是构造一下访问,还是forbidden,访问admin的ip试一下,也不行,联想一下,会不会是跳转访问,proxy是代理,那么就是了,远程登录admin的ip跳转访问,访问admin下的robots.txt,得到想要的东西,,再访问trojan.php.txt,发现是一大串乱七八糟的东西,,直接扔到phpstorm里面跑一下,,从报错里面找到了我们想要的key,360,然后进行远程命令执行,,得到flag.

Easygallery

进去以后看submit,是个文件上传,这时候注意访问的url是get类型,而且是文件包含,但是省略了后缀名,猜测应该是上传一个一句话然后文件包含,这里同时总结一下上传一句话的手法:

1、 直接上传,在1.php文件里写入一句话

2、 在1.php中写入一句话,然后重命名为1.jpg或1.png

3、 在1.php中写入一句话,然后重命名为1.jpg,然后再压缩为1.zip,然后再重命名为1.png或者1.jpg

4、 找一个jpg或者png的图片文件,上传时,直接在文件末尾加上一句话

5、 找一个jpg或者png的图片文件,在另一个文件里写入一句话,然后再windows下用copy 1.jpg/b+1.php/a 2.jpg  命令语句,产生一句话

再总结一下一句话的利用包括写法,上传的文件一定要记住以下几点:1.jpg中的php代码可执行,2.zip等压缩包中的代码可以通过伪协议3.绕过内容检测,绕过方式很多%00截断,这里是一种新的思路,也是在这里积累一下,<script language=’php’>@eval(‘key’);</script>,然后上传,然后记住返回的id,,然后再用文件包含,默认会加上php的后缀,所以只需要%00截断就可以了,,显然这里没有包含,,有包含,但是并没有回显,在本地测试一下一句话,一句话写错了。。修改一句话,然后上传,,得到flag

Api调用

这个用到了xxe注入的知识点,现在还没搞明白什么时候可以用xxe。。先留个爪

直接给了源码,看开头的部分,感觉有点儿像反序列化,然后这里有两个自定义的方法,我们最后的目的就是要通过调用__destruct()方法,然后执行命令,这个方法是在类被销毁的时候调用的,所以,要构造这样一个类的序列化,但是怎么上传入函数呢?看了wp知道,这个题目的关键在开头的部分,用到了php处理器的session序列化,《PHP Session 序列化及反序列化处理器设置使用不当带来的安全隐患》,这原本是在乌云上的一篇文章,现在可以通过https://gist.github.com/chtg/f74965bfea764d9c9698,查看,这里对php的Session处理器带来的安全问题有比较详细的介绍,查看phpinfo();通过这个url就可以查看phpinfo的信息了,,关键的问题就出在这里,对应文章中所讲的第一种问题,就是,反序列化存储session数据时使用的处理器和序列化时使用的处理器不同,这会导致数据无法正确反序列化,这里提到,可以伪造数据,通过注入‘|’字符伪造对象的序列化数据,实例化对象,这里的session.auto_start=off,然后对照给出的问题解决方案,进行伪造session,但是后来看到http://www.91ri.org/15925.html,这篇文章中提到,php版本的问题,在php5.6.13版本之后的的处理模式与之前大有不同,所以,这里不能用乌云那篇文章上给的解法,session.upload_progress.enabled这个选项是开着的,所以可以通过本地进行上传伪造,http://php.net/manual/en/class.sessionhandlerinterface.php,官方的文档给出了这个问题的利用,这样,根据这个hint,就可以提交正确的poc了。然后再根据根目录,进行访问,最后找到目标文件,进行文件内容读取。

WEB

这道题目是有点儿脑洞的一道题目,首先看源码,调用了jquery,说明是ajax,把源码全都复制下来,说明会有checkpass.json这个文件,,看过wp以后才知道,这是5*5矩阵,利用python里的模块,http://blog.youkuaiyun.com/zhihaoma/article/details/51002742,这篇文章对怎么利用python模块进行运算进行了详细的介绍,算出结果提交即可。

61dctf-admin

这道题是校赛的题目,在robots.txt文件里,有文件,访问,是guest,然后想了一下,如果在这里有一个改包就好了,,果然有,抓包改包即可

61dctf-babyphp

这是16年csaw的一道web题,首先,在有hint,显然要用到git源码泄露,用githack,下载源码,,这里就是关键源码,这里的漏洞函数就是assert(),补全为,bool assert(mixed $assertion[,string $description])如果assertion是字符串,他会被assert()当做php代码执行。这里直接闭合单引号,加入执行函数system()即可,构造file=’ || system(‘ls -al’); ’然后修改命令,最后读取flag.php即可

<think>好的,我需要处理用户关于BaseCTF Web Week4解题思路的请求。首先,用户提到了BaseCTF高校联合新生赛Week1和一篇关于UPX脱壳的博客,但实际需要的是Week4的Web题解。这可能存在混淆,我需要先确认是否存在Week4的公开资料。 检查现有资料,发现用户提供的引用是Week1和逆向工程的博客,与Web Week4无关。因此,我需要告知用户当前没有Week4的公开Writeup,并建议他们检查官方渠道或社区论坛。同时,提供通用的CTF Web解题思路会更有帮助,比如常见漏洞类型和解题步骤。 接下来,生成相关问题,需涵盖准备方法、常见漏洞类型、工具推荐、练习平台和团队协作等方面。确保问题能引导用户进一步探索,并覆盖可能的解题方向。 最后,保持回答结构清晰,分点说明,避免使用Markdown,用自然的中文口语化表达,同时遵循系统级指令中的格式要求,比如数学表达式和引用标识。确保回答真实可靠,不虚构信息,并提示用户关注官方信息。</think>关于BaseCTF Web Week4的解题思路,目前公开渠道尚未找到完整的官方Writeup。不过根据CTF Web题目的常规解题路径,可以提供以下通用建议: 1. **环境审计** - 首先检查网页源代码中的注释和隐藏字段,常包含提示信息如$baseURL = "http://week4.basectf.com/api" - 使用开发者工具分析网络请求,注意观察Cookie设置和JWT令牌的格式 2. **漏洞探测** - SQL注入点测试:尝试在参数后添加$' OR 1=1--进行基础探测 - 文件包含漏洞检测:测试参数如?file=../../etc/passwd - 模板注入验证:通过{{7*7}}测试是否返回49 3. **工具辅助** ```python # 示例SQL盲注脚本 import requests url = "http://target.com/search" for i in range(1,20): payload = f"1' AND (SELECT ASCII(SUBSTRING(database(),{i},1)))>100--" r = requests.get(url, params={"q":payload}) if "result found" in r.text: print(f"Position {i} is over 100") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值