进入靶机看到源码
<?php
$flag="";
$v1=$_GET['v1'];
$v2=$_GET['v2'];
if(isset($v1) && isset($v2)){
if(!ctype_alpha($v1)){
die("v1 error");
}
if(!is_numeric($v2)){
die("v2 error");
}
if(md5($v1)==md5($v2)){
echo $flag;
}
}else{
echo "where is flag?";
}
?>
这里简单的分析一下代码
首先要传入两个参数一个是v1另外一个就是v2
这里v1前面更了一个ctype_alpha这个函数的意思就是 做纯字符检测也就是v1里面传进去的参数必须是字符
这里v2前面更了一个is_numeric这个函数的意思就是 检测变量是否为数字或数字字符串 v2传进去的参数全部为数字
if(md5($v1)==md5($v2)){
echo $flag;
v1与v2传进去的md5的值要一样才会输出flag
0e开头的md5的值会被系统识别为0
上面的是是加密前的值下面是加密后的值
QNKCDZO
0e830400451993494058024219903391
240610708
0e462097431906509019562988736854
s878926199a
0e545993274517709034328855841020
s155964671a
0e342768416822451524974117254469
s214587387a
0e848240448830537924465865611904
s214587387a
0e848240448830537924465865611904
s878926199a
0e545993274517709034328855841020
s1091221200a
0e940624217856561557816327384675
s1885207154a
0e509367213418206700842008763514
s1502113478a
0e861580163291561247404381396064
s1885207154a
0e509367213418206700842008763514
s1836677006a
0e481036490867661113260034900752
s155964671a
0e342768416822451524974117254469
s1184209335a
0e072485820392773389523109082030
s1665632922a
0e731198061491163073197128363787
0e215962017这个加密前后都是oe开头的
我这里直接给出来也不用大家去找了
所以直接传入?v1=QNKCDZO&v2=240610708
直接得出flag提交即可