攻防世界1-6攻防世界 web练习区 (1-6)_许允er的博客-CSDN博客
7.simple_php
php代码审计
include("config.php");
$a=@$_GET['a'];
$b=@$_GET['b'];
if($a==0 and $a){
echo $flag1;
}
这里表示定义a要等于0同时a要真
if(is_numeric($b)){
exit();
}
这里表示b为数字则进行exit()的操作及b不能为数字
if($b>1234){
echo $flag2;
}
?>
这里b要大于1234才会输出flag2
有关php的弱类型
=== 在进行比较的时候,会先判断两种字符串的类型是否相等,再比较
== 在进行比较的时候,会先将字符串类型转化成相同,再比较
在php手册中得到
当一个字符串欸当作一个数值来取值,其结果和类型如下:如果该字符串没有包含'.','e','E'并且其数值值在整形的范围之内 该字符串被当作int来取值,其他所有情况下都被作为float来取值,该字符串的开始部分决定了它的值,如果该字符串以合法的数值开始,则使用该数值,否则其值为0。
所以在b中1234=1234a但是1234a不会被当成数字
构造index.php?a="0"&b=9999a
得到flag值
8.get_post
直接url构造a=1
post请求可以通过hackbar完成
post发送b=2得到flag
9.xff_referer
要伪造地值先通过bp抓包
X-Forwarded-For用于绕过只接收固定IP的请求
转到request后构造X-Forwarded-For:123.123.123.123来伪造IP
得到必需来自google
referer更改发送网站
构造referer:https://www.google.com
得到flag