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

AWCTF萌新赛web题WP

程序员文章站 2022-03-04 17:25:21
...

1、pacman
AWCTF萌新赛web题WP
一个游戏,看到题目直接看网页源代码
因为不能邮右键,所以直接在view-source:加网址
view-source:http://49.232.149.138:11521/pacman/
AWCTF萌新赛web题WP
看到两个js文件,都打开

在index.js中发现flag
AWCTF萌新赛web题WP
base64解密
AWCTF萌新赛web题WP
然后将解密出来的那个js代码放入控制台中,然后能出来flag
AWCTF萌新赛web题WP
2、real_ezAWCTF萌新赛web题WP
AWCTF萌新赛web题WP

这题比较简单,主要靠百度
AWCTF萌新赛web题WP
可以发现title上就有flag
AWCTF萌新赛web题WP
AWCTF萌新赛web题WP
可以直接去腾讯云查看
https://buy.cloud.tencent.com/price/eip#E8AEA1E8B4B9E591A8E69C9F
AWCTF萌新赛web题WP
然后突然发现title又变了
AWCTF萌新赛web题WP

AWCTF萌新赛web题WP
直接在对话框中输入e6b0b4e6b0b4e5a4a7e5a4a7e59b9be5a484e5afbbe689bee5b9b8e5ad98e880857a7863
然后回车
AWCTF萌新赛web题WP
扫一次啊二维码
在公众号上发一个flag,然后机会出来最后的flag片段
串接起来提交即可

3、web2
这个题考察了php伪协议
AWCTF萌新赛web题WP

<?php

$flag = "flag{***}";

highlight_string(str_replace($flag, "flag{***}", file_get_contents(__FILE__)));

extract($_GET);

if(isset($file) && file_get_contents($file) == "hello hebust") {
    print($flag);
}

首先先分析下一些php函数的意思
extract() 函数:
extract() 函数从数组中将变量导入到当前的符号表。
extract($_GET);把客户端中get请求的变量名取出来
file_get_contents() 函数把整个文件读入一个字符串中。
file_get_contents()这个函数是可以绕过的
使用php://input伪协议绕过
① 将要GET的参数?xxx=php://input
② 用post方法传入想要file_get_contents()函数返回的值
用data://伪协议绕过
将url改为:?xxx=data://text/plain;base64,想要file_get_contents()函数返回的值的base64编码
或者将url改为:?xxx=data:text/plain,(url编码的内容)
最终payload
http://49.232.149.138:11521/web2.php?file=data://text/plain;base64,aGVsbG8gaGVidXN0

flag{75b478b4-d5c1-47d2-9716-5dee9b312d72}

4、local
AWCTF萌新赛web题WP
这个题目比较简单
AWCTF萌新赛web题WP
F12发现提示
AWCTF萌新赛web题WP
输入密码后:
AWCTF萌新赛web题WP
需要在本地才能访问,本地就是127.0.0.1
需要改下包即可,这里用hackbar
AWCTF萌新赛web题WP
5、web0

AWCTF萌新赛web题WP

<?php

$flag = 'flag{***}';

highlight_string(str_replace($flag, "flag{***}", file_get_contents(__FILE__)));

$_GET['id'] = urldecode($_GET['id']);

if (isset($_GET['uname']) and isset($_POST['passwd'])) {
    if ($_GET['uname'] == $_POST['passwd'])

        print 'passwd can not be uname.';

    else if (sha1($_GET['uname']) === sha1($_POST['passwd'])&($_GET['id']=='me'))
        die('Flag: '.$flag);
    else
        print 'sorry!';
}

这一题的关键主要在于

sha1($_GET['uname']) === sha1($_POST['passwd']

这个的比较,因为===是不能比较数组的所以可以使用数组绕过
最终的payload:
AWCTF萌新赛web题WP
6、web1
AWCTF萌新赛web题WP

<?php
$flag = "flag{***}";

highlight_string(str_replace($flag, "flag{***}", file_get_contents(__FILE__)));

function encode($str){
    $_o=strrev($str);
    for($_0=0;$_0<strlen($_o);$_0++){
       
        $_c=substr($_o,$_0,1);
        $__=ord($_c)-1;
        $_c=chr($__);
        $_=$_.$_c;   
    } 
    return (base64_encode($_));
}

print(encode($flag));
fDVjMGRlMC9kNDRkMDg3ZTQwMmRhNGU4NTIwMTAwNDNkemZga2U=

写一个逆向算法即可

<?php
$str="fDVjMGRlMC9kNDRkMDg3ZTQwMmRhNGU4NTIwMTAwNDNkemZga2U=";
$_="";
$_o = base64_decode($str);
for($_0=0;$_0<strlen($_o);$_0++){
	$_c=substr($_o,$_0,1);
	$__=ord($_c)+1;
	$_c=chr($__);
	$_=$_.$_c;
}
$_=strrev($_);
echo $_;
?>

AWCTF萌新赛web题WP