欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

南邮CTF平台writeup:Web(一)

程序员文章站 2022-03-09 19:24:15
...

签到题

查看网页源代码即可
南邮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
南邮CTF平台writeup:Web(一)

签到2

南邮CTF平台writeup:Web(一)
可以看到源码里限制了最大输入长度位10位,但口令为11位。
有两个方法:一个是改当前网页的源码,一个是拦截数据包改口令。
这里用简便点的第一个方法
南邮CTF平台writeup:Web(一)
南邮CTF平台writeup:Web(一)

这题不是WEB

南邮CTF平台writeup:Web(一)
这题还真不是web…..是一道隐写
下载图片以文本形式打开,在末尾有flag
南邮CTF平台writeup:Web(一)

层层递进

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

AAencode

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

单身二十年

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

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即可
南邮CTF平台writeup:Web(一)

文件包含

文件包含是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
南邮CTF平台writeup:Web(一)

单身一百年也没用

考察HTTP头,flag被放在了response的头里,用burpsuite的repeater去访问即可
南邮CTF平台writeup:Web(一)

Download~!

在源码里可以看到下载链接很奇怪,是base64加密的
南邮CTF平台writeup:Web(一)
把星星点灯的下载链接base64解密后发现是和其相对应的
南邮CTF平台writeup:Web(一)
那猜测这里是一个任意文件下载的漏洞,flag会在什么文件里?
尝试下载flag.php:
http://way.nuptzj.cn/web6/download.php?url=ZmxhZy5waHA=
南邮CTF平台writeup:Web(一)
禁止连接,看来出题者不想就这么让我直接拿到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
南邮CTF平台writeup:Web(一)

COOKIE

南邮CTF平台writeup:Web(一)
题目给出了提示0==not
打开链接没有多的信息,那就是要拦数据包改cookie了
南邮CTF平台writeup:Web(一)
cookie里有个不正常的login=0,结合提示那就改为1了
南邮CTF平台writeup:Web(一)

                      **总共是前12道题的writeup**
相关标签: web ctf