题设
但是通过观察源码并没有发现,不同之处。
所以尝试,是否存在备份源码在服务器中。burp抓包,选择注入点。加载Payload。
选择payload
得到200
①对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
题目:仅允许本地地址访问
尝试更改了HOST以及isadmin字段似乎都没有太大作用。
根据PW,发现只需要X-Forwarded-For=127.0.0.1 ,嗷,~~还不行。。还得是admin。
这样才可以得到flag。
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语句
