南邮CTF平台writeup:Web(一)

签到题

查看网页源代码即可
这里写图片描述

md5 collision

$md51 = md5('QNKCDZO');
$a = @$_GET['a'];
$md52 = @md5($a);
if(isset($a)){
if ($a != 'QNKCDZO' && $md51 == $md52) {
    echo "nctf{*****************}";
} else {
    echo "false!!!";
}}
else{echo "please input a";}

PHP漏洞题
源码的意思是要求两个变量不相等但是他们的MD5值要相等,这是不可能的。这里用的是PHP在比较哈希值时会将0e开头的哈希值都解释为0的缺陷(和编程语言的科学计数法有关),也就是说只要让GET传参的值的MD5以0e开头就行了
补个相关的链接:
http://www.cnblogs.com/Primzahl/p/6018158.html
payload:http://chinalover.sinaapp.com/web19/?a=s878926199a
flag

签到2

源码
可以看到源码里限制了最大输入长度位10位,但口令为11位。
有两个方法:一个是改当前网页的源码,一个是拦截数据包改口令。
这里用简便点的第一个方法
这里写图片描述
flag

这题不是WEB

1
这题还真不是web…..是一道隐写
下载图片以文本形式打开,在末尾有flag
2

层层递进

源码里看见一个奇怪的链接
1
去这个网页后源码里又有个奇怪的链接,细心点发现和上次是不一样的,上次是SO.html,这是是S0.html
2
这样点了几个链接后,来到了最终的链接:
http://chinalover.sinaapp.com/web3/404.html
源码里有一段奇怪的注释
3
仔细看一下就能发现竖着的flag

AAencode

aaencode就是JS颜文字代码,本质上还是代码,可以运行
点开链接发现是混着AAencode代码和乱码的一堆字符串
1
有乱码猜测是编码方式的问题,下载这个txt文档
用UTF-8打开就能得到原本的aaencode
2
本来是要对代码进行改动,补充完整一个颜文字的,今天发现出题人把题目改简单了
现在直接扔进控制台运行即可
2

单身二十年

源码里让到这里找flag
1
但是点开后会被迅速地重定向到另一个页面,我没有像题目名那样单身二十年,所以我手速不过关→_→,还是上burpsuite吧
2

php decode

考察对PHP和shell的理解

<?php function CLsI($ZzvSWE) { $ZzvSWE = gzinflate(base64_decode($ZzvSWE)); for ($i = 0; $i < strlen($ZzvSWE); $i++) { $ZzvSWE[$i] = chr(ord($ZzvSWE[$i]) - 1); } return $ZzvSWE; } eval(CLsI("+7DnQGFmYVZ+eoGmlg0fd3puUoZ1fkppek1GdVZhQnJSSZq5aUImGNQBAA==")); ?>

eval()函数会执行括号里面的语句,这种代码在现实中一般是某个黑客上传的一句话马,但在这里eval里面肯定就是flag了,找个在线代码执行的网站,复制粘贴代码,将eval改成echo即可
flag

文件包含

文件包含是CTF里一种常见的漏洞
这里有个介绍文件包含的链接:http://www.freebuf.com/articles/4843.html
打开题目链接后可以看到这个链接
http://4.chinalover.sinaapp.com/web7/index.php?file=show.php
可以看到file=….,是典型的文件包含的样式
payload:http://4.chinalover.sinaapp.com/web7/index.php?file=php://filter/read=convert.base64-encode/resource=index.php
可以得到index.php的源代码的base64加密形式
解码即可得到flag
flag

单身一百年也没用

考察HTTP头,flag被放在了response的头里,用burpsuite的repeater去访问即可
flag

Download~!

在源码里可以看到下载链接很奇怪,是base64加密的
1
把星星点灯的下载链接base64解密后发现是和其相对应的
2
那猜测这里是一个任意文件下载的漏洞,flag会在什么文件里?
尝试下载flag.php:
http://way.nuptzj.cn/web6/download.php?url=ZmxhZy5waHA=
1
禁止连接,看来出题者不想就这么让我直接拿到flag
试了几个都不对,最后试到download.php:
http://way.nuptzj.cn/web6/download.php?url=ZG93bmxvYWQucGhw
给出了源码

<?php error_reporting(0); include("hereiskey.php"); $url=base64_decode($_GET[url]); if( $url=="hereiskey.php" || $url=="buxiangzhangda.mp3" || $url=="xingxingdiandeng.mp3" || $url=="download.php"){ $file_size = filesize($url); header ( "Pragma: public" ); header ( "Cache-Control: must-revalidate, post-check=0, pre-check=0" ); header ( "Cache-Control: private", false ); header ( "Content-Transfer-Encoding: binary" ); header ( "Content-Type:audio/mpeg MP3"); header ( "Content-Length: " . $file_size); header ( "Content-Disposition: attachment; filename=".$url); echo(file_get_contents($url)); exit; } else { echo "Access Forbidden!"; } ?>

可以看到flag应该在hereiskey.php里,下载后得到flag
flag

1
题目给出了提示0==not
打开链接没有多的信息,那就是要拦数据包改cookie了
这里写图片描述
cookie里有个不正常的login=0,结合提示那就改为1了
flag

                      **总共是前12道题的writeup**
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值