CTF入门_phpversion、XFF

1.phpversion

题设

在这里插入图片描述

1.1 得到源码

但是通过观察源码并没有发现,不同之处。

所以尝试,是否存在备份源码在服务器中。burp抓包,选择注入点。加载Payload。
在这里插入图片描述

选择payload
在这里插入图片描述

得到200
在这里插入图片描述

1.2 分析源码

<?php
ERROR_REPORTING(0);
if(!empty($_GET['ver'])==PHP_VERSION){

	if($_GET['ver']==PHP_VERSION){
		$key = "**********";
	}
}
?>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>PHP Version</title>
</head>
<body alink="#007000" bgcolor="#000000" link="gold" text="#008000" vlink="#00c000">
<center>
<br><br>
<center>
  <h1>Version</h1>
</center>
<br>
<br>
<font color="red">Key Words:</font>PHP Version<br>
<br>

<div>
<form action="" method="POST">
Key:
<input type="text" name="key"><br>
<input type="hidden" name="ver"><br>
<input type="submit" name="Version.php"><br><br><br><br><?php echo $key;?>
</form>
<br>
<br>
</form>
</center>
</body></html>

①对php块进行分析

ERROR_REPORTING(0):关闭PHP的所有报错

第一个判断:若ver传参不为空,且等于PHP版本就可以进入下面

第二个判断:传参等于PHP版本,则输出$key,

<?php echo $key;?>
<?php
ERROR_REPORTING(0);
if(!empty($_GET['ver'])==PHP_VERSION){

	if($_GET['ver']==PHP_VERSION){
		$key = "**********";
	}
}
?>

②获得PHP版本

观察了许久没有一个好的思路拿到PHP版本,根据WP学到一手,服务器返回的包给了PHP版本。PHP/5.6.40

在这里插入图片描述

③进行传参,得到flag

开始传参PHP/5.6.40始终没有变化,后面5.6.40得到flag

在这里插入图片描述

2.一道简单的XFF

2.1 抓包解题

题目:仅允许本地地址访问
在这里插入图片描述

尝试更改了HOST以及isadmin字段似乎都没有太大作用。
在这里插入图片描述

根据PW,发现只需要X-Forwarded-For=127.0.0.1 ,嗷,~~还不行。。还得是admin

在这里插入图片描述

这样才可以得到flag。

在这里插入图片描述

2.2 关于XFF的扩展

IP伪造

TCP/IP层面的IP伪造很难实现,因为更改后很难实现正常的TCP通信,但在HTTP层面的伪造就显得很容易。可以通过伪造XFF头进行IP伪造。所以仅允许本地地址访问,就需要使用X-Forwarded-For来进行构造。

X-Forwarded-For

XFF详细介绍

是用来识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址的HTTP请求头字段。通俗来说,就是浏览器访问网站的IP

其一般形式为:

X-Forwarded-For: client1, proxy1, proxy2, proxy3
//client1 浏览器IP
//proxy   依次通过的服务器IP

一般题目思路:

(需要IP伪造,但是包头没有XFF,可以构造XFF)

同时构造自己的IP地址-----------X-Forwarded-For

构造自己来自哪个网址-----------refer

构造自己属于哪个网段--------------X-Forwarded-for:192.XXX

同时构造cookie中的某些参数

注入直接构造sql语句

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值