ISCC

MISC

ISCC1
将八进制的数转换成字符

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>
using namespace std;
int main()
{
char a[100]={0126,062,0126,0163,0142,0103,0102,0153,0142,062,065,0154,0111,0121,0157,0113,0111,
0105,0132,0163,0131,0127,0143,066,0111,0105,0154,0124,0121,060,0116,067,0124,0152,0102,0146,0115,
0107,065,0154,0130,062,0116,0150,0142,0154,071,0172,0144,0104,0102,0167,0130,063,0153,0167,0144,
0130,060,0113};
int i;
for(i=0;i<60;i++)
{
printf("%c",a[i]);
}
return 0;
}

运行结果:

1
V2VsbCBkb25lIQoKIEZsYWc6IElTQ0N7TjBfMG5lX2Nhbl9zdDBwX3kwdX0K

再用base64来解密字符
Well done!

Flag: ISCC{N0_0ne_can_st0p_y0u}

img

附件下载,打看文件夹看到一堆汉字,我们仔细观察可以发现规律中间有一个空格的和两个空格的

使用c++编写程序把一个空格替换为0,两个空格替换为1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include<iostream>
using namespace std;

int main()

{

char ch[]="蓅烺計劃 洮蓠朩暒戶囗 萇條戶囗 萇條蓅烺計劃 洮蓠朩暒蓅烺計劃 洮蓠朩暒戶囗
萇條戶囗 萇條蓅烺計劃 洮蓠朩暒蓅烺計劃 洮蓠朩暒戶囗 萇條戶囗 萇條蓅烺計劃 洮蓠朩暒戶囗
萇條戶囗 萇條蓅烺計劃 洮蓠朩暒蓅烺計劃 洮蓠朩暒蓅烺計劃 洮蓠朩暒戶囗 萇條戶囗 萇條蓅烺計劃
洮蓠朩暒蓅烺計劃 洮蓠朩暒蓅烺計劃 洮蓠朩暒蓅烺計劃 洮蓠朩暒戶囗 萇條蓅烺計劃 洮蓠朩暒戶囗
萇條戶囗 萇條蓅烺計劃 洮蓠朩暒蓅烺計劃 洮蓠朩暒戶囗 萇條戶囗 萇條戶囗 萇條蓅烺計劃 洮蓠朩暒戶囗
萇條戶囗 萇條戶囗 萇條戶囗 萇條蓅烺計劃 洮蓠朩暒戶囗 萇條戶囗 萇條蓅烺計劃 洮蓠朩暒戶囗
萇條蓅烺計劃 洮蓠朩暒蓅烺計劃 洮蓠朩暒戶囗 萇條蓅烺計劃 洮蓠朩暒蓅烺計劃 洮蓠朩暒戶囗 萇條蓅烺計劃
洮蓠朩暒戶囗 萇條蓅烺計劃 洮蓠朩暒戶囗 萇條蓅烺計劃 洮蓠朩暒蓅烺計劃 洮蓠朩暒戶囗 萇條戶囗
萇條蓅烺計劃 洮蓠朩暒戶囗 萇條蓅烺計劃 洮蓠朩暒蓅烺計劃 洮蓠朩暒蓅烺計劃 洮蓠朩暒蓅烺計劃 洮蓠朩暒戶囗
萇條戶囗 萇條蓅烺計劃 洮蓠朩暒戶囗 萇條蓅烺計劃 洮蓠朩暒蓅烺計劃 洮蓠朩暒蓅烺計劃 洮蓠朩暒蓅烺計劃
洮蓠朩暒戶囗 萇條戶囗 萇條蓅烺計劃 洮蓠朩暒戶囗 萇條蓅烺計劃 洮蓠朩暒戶囗 萇條戶囗 萇條戶囗
萇條戶囗 萇條戶囗 萇條蓅烺計劃 洮蓠朩暒戶囗 萇條蓅烺計劃 洮蓠朩暒戶囗 萇條蓅烺計劃 洮蓠朩暒戶囗
萇條戶囗 萇條戶囗 萇條蓅烺計劃 洮蓠朩暒戶囗 萇條蓅烺計劃 洮蓠朩暒蓅烺計劃 洮蓠朩暒蓅烺計劃 洮蓠朩暒戶囗
萇條蓅烺計劃 洮蓠朩暒戶囗 萇條蓅烺計劃 洮蓠朩暒戶囗 萇條蓅烺計劃 洮蓠朩暒蓅烺計劃 洮蓠朩暒戶囗
萇條戶囗 萇條蓅烺計劃 洮蓠朩暒蓅烺計劃 洮蓠朩暒蓅烺計劃 洮蓠朩暒戶囗 萇條蓅烺計劃 洮蓠朩暒蓅烺計劃
洮蓠朩暒蓅烺計劃 洮蓠朩暒蓅烺計劃 洮蓠朩暒戶囗 萇條戶囗 萇條蓅烺計劃 洮蓠朩暒戶囗 萇條蓅烺計劃
洮蓠朩暒蓅烺計劃 洮蓠朩暒戶囗 萇條戶囗 萇條戶囗 萇條戶囗 萇條蓅烺計劃 洮蓠朩暒戶囗 萇條蓅烺計劃
洮蓠朩暒蓅烺計劃 洮蓠朩暒戶囗 萇條戶囗 萇條蓅烺計劃 洮蓠朩暒戶囗 萇條蓅烺計劃 洮蓠朩暒戶囗
萇條蓅烺計劃 洮蓠朩暒蓅烺計劃 洮蓠朩暒蓅烺計劃 洮蓠朩暒戶囗 萇條蓅烺計劃 洮蓠朩暒戶囗 萇條蓅烺計劃
洮蓠朩暒戶囗 萇條戶囗 萇條戶囗 萇條戶囗 萇條戶囗 萇條蓅烺計劃 洮蓠朩暒戶囗 萇條";

char \*p;

​ p=ch;

while(\p!='\0')

​ {

if(\*p==' '){

if(\(p+1)==' '){

cout<<1;

​ p++;

​ }else{

cout<<0;

​ }

​ }

​ p++;

​ }

return 0;

}

使用转换工具将二进制转换成字符串

img

可以得到flag{ISCC WELCOME}

倒立屋

img

打开附件进行解压缩得到一张图片,此时就想要尝试一下图片解密

img

对于LSB隐写,我们可以使用Stegsolve工具

在工具中找到图片,并打开

img

打开后进行以下操作

img

找和flag相似的句子,我们可以发现本题的flag就在开头,我们仔细读题会发现重力反转,我们把IsCc_2019反过来的9102_cCsI,这就是flag

img

他们能在一起吗?

img

img

UEFTUyU3QjBLX0lfTDBWM19ZMHUlMjElN0Q=

用base64解码

PASS{0K_I_L0V3_Y0u!}

可以去试一下提交,发现不对

我们把这个二维码保存到本地,我们右键单击二维码,在打开方式栏选择360压缩打开得到下图的txt文件,点击该文件把刚刚解密的解码0K_I_L0V3_Y0u!输进去,最后得到flag

img

ISCC{S0rrY_W3_4R3_Ju5T_Fr1END}

无法运行的exe

img

附件下载该文件,进行解压,双击发现打不开

img

我们首先在桌面上建立一个文本文档并打开,把runnable.exe拖拽到打开的新建文档中

img

根据经验我们看开头的iVBORw0KGgAAAAA可以大概了解这是一张图片我们用base64图片在线转换工具上传一张类型为.png的图片会的解码为以“data:image/png;base64,”开头的编码因此我们tunnable.exe的编码加上前面这段编码点击Rase64还原图片

img

我们右单击图片点查看图片信息,出现如下图点另存为

img

使用WinHex打开另存为的图片,把图中的位置00改成0A,保存

img

png类型的图片的编码开头是固定的

img

弄好后右单击文件,点击打开方式选择画图,出现一个二维码,用手机扫描二维码得到flag

Aesop’s secret

img

附件下载好得到一张Aesop.gif的图片,我们首先在桌面上建立一个文本文档并打开,把Aesop.gif拖拽到打开的新建文档中,得到以下编码,通过观察我们可以知道在编码的最后面有以下蓝色的编码

img

使用在线加密解密工具对其进行解密

img

得到的明文再一次的进行解密,最后得到flag{DDiamondADeepDarkMine}

img

碎纸机

img

附件下载可以得到一张jpg图片

img

点击图片,单击右键选择打开方式,用360压缩文件打开,会得到几张jpg和一个redeme.txt

img

redeme.txt的内容为

碎纸机中居然是一堆黑色和白色的碎片,但是这些碎片之中到底会有什么样的宝藏呢?

我去问了欧鹏·曦文同学,他说他有办法恢复拼图原貌,但是前提是要我把真正有用的东西给他。

使用WinHex工具打开拼图,观察发现最后有一段被00包围的十六进制的编码

img

把这段编码复制下来,步骤如下

img

打开notepad++工具,把编码复制到里面去

img

ctrl+F 打开查找快捷键,查找0的字符,把视图调为自动换行,即可得到

img

对几幅图进行以上处理后得到

Flag={ISCC_is_so_interesting_!}

Reverse

img

附件下载打开是一个rev2.exe文件点击会发现,要输入用户名和密码

img

我们首先在桌面上建立一个文本文档并打开,把rev2.exe拖拽到打开的新建文档中会出现下面的代码仔细观察代码找规律会发现flag

img

flag{ST0RING_STAT1C_PA55WORDS_1N_FIL3S_1S_N0T_S3CUR3}

web1

img

img

给出了一个PHP源代码 代码审计

img

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
error_reporting(0);关闭错误报告

require 'flag.php';
$value = $_GET['value'];

$password = $_GET['password']; GET传参

$username = ''; 赋值

for ($i = 0; $i < count($value); ++$i) for循环语句当$i<count() 函数返回$value中元素的数目。

if ($value[$i] > 32 && $value[$i] < 127) unset($value);如果数目在32127则销毁$value

else $username .= chr($value[$i]);反则chr() 函数从指定 ASCII 值返回字符。(.=把右边的字串加到左边)

if ($username == 'w3lc0me_To_ISCC2019' && intval($password) < 2333 && intval($password + 1) > 2333) {echo 'Hello '.$username.'!', '<br>', PHP_EOL;

echo $flag, '<hr>';

img

运行结果:375307364355304365357351340367351329339323323306304305313

intval() 函数用于获取变量的整数值

要满足intval($password) < 2333 && intval($password + 1) > 2333 $username第一个字母w所对应的ascii码为119,在32-127范围内,因为chr()函数会自动进行mod256,所以可以传参119+256得到w,因为intval在如果参数是字符串,则返回字符串中第一个不是数字的字符之前的数字串所代表的整数值,就返回0,所以令$password=0xaaaa,字符$password和数字相加$password会先转成数字则intval($password)=0<2333,inval($password)>2333,输出flag

value[]=375&value[]=307&value[]=364&value[]=355&value[]=304&value[]=365&value[]=357&value[]=351&value[]=340&value[]=367&value[]=351&value[]=329&value[]=339&value[]=323&value[]=323&value[]=306&value[]=304&value[]=305&value[]=313&password=0xaaaa

得到:Hello w3lc0me_To_ISCC2019!

flag{8311873e241ccad54463eaa5d4efc1e9}

web4暂时未做出

img

isset() — 检测变量是否设置

($_SERVER[‘REQUEST_URI’]);获取完整参数URL parse_url()解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分

parse_str($query);将查询字符串解析到变量中

hash — 生成哈希值 ,要使用的哈希算法是sha256,来解析$key的值


 上一篇
bugku_web_web2 bugku_web_web2
web2 看题目提示,打开链接,出现一堆笑脸朝你奔来 单击右键查看源代码,发现了flag KEY{Web-2-bugKssNNikls9100}
2019-09-28
下一篇 
Hello World Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hex
2019-06-05 清风
  目录