0%

NISACTF 新生赛

武靖骐 121182023004

  • $web$

    • $huaji$

      图片隐写为什么在web里(雾

      扔到 winhex 里十六进制看一下,flag 在最后面

    • $brcbeb$

      直接看前端,index.js 里面搜 flag 即可

    • $弱欸$

      hackbar post 提交,用 114514.0 绕过

    • $伯乐$

      weevely 上传

    • $杂鱼rce$

      aaa=system("ls /");

      直接找 flag

    • $启动$

      抓包得到是跳转到 flag 界面后再跳转到启动界面

    • $小店$

      反复提交价位看报错得,具体代码类似

      1
      2
      3
      4
      5
      <?php
      $a=$post
      $b=.....$f=....
      eval("echo $a*$d+$b*$e+$c*$f;");
      ?>

      那么只需使 $a=/* , $f=*/ 把中间注释掉,再用 $f=system() 注入即可

    • $easy-xss(题没了)$

      想太复杂了,level1 直接 <script> 框住就好,level2" </h2> 闭合前面的标签

    • $homo$

      现学 vim ,在第三个临时文件 .index.php.swn 中找到这个

      得到了很复杂的过滤表达式

      但这串正则表达式太具有标志性,百度 已经构造好了 payload

    • $xml$

      抓包,找到 doLogin.php ,发现 application/xml 判断是 xxe 注入,直接百度到以下 payload

      1
      2
      3
      4
      <?xml version="1.0" encoding="utf-8"?>
      <!DOCTYPE note [
      <!ENTITY admin SYSTEM "file:///flag.txt">
      ]>

      直接在根目录下找到 flag

    • $rickroll$

      F12 找到“你怎么不传参”界面,在这里卡了很长时间

      最后找到问题

      PHP 版本小于 $8$ 时,参数中出现 [ , 则会被转换成 _ ,而导致接下来参数名中的非法字符不会继续转换为 _ ,例

      1
      c[m.d=xxx

      会被转成 c_m.d=xxx

    • $1453$

      扫了一下还是怎么得到了 /robots.txt ,在这里找到 /h1nt.html

      得到提示是用 getbasilic

      到新朝雅政这里,一直以为是 post: sultan=xinchaoyazheng 卡住了,想了几天用 xinchaoyazheng=1 看到报错,那么直接

      1
      2
      xinchaoyazheng=system("ls /");
      xinchaoyazheng=system("cat /flag.txt");
  • $misc$

    • 签到题略

    • $流量分析$

      wireshark 里,公式化的拉到最底下,挨个看一看找到这个

      解一个三重 base64

    • $艾克$

      考查英文翻译,找到 lol 原文去掉逗号提交即可(雾

      $GIF$ 看起来很卡,结合背景艾克联想到时间轴隐写

      1
      identify -format "%s %T \n" TIME.GIF

      得到这个:

      一眼 ASCII ,直接转换得到

    • $osint$

      $osint \ ×$

      $web \ √$

      真会 osint ,但这个不会

      仔细读题:

      百度一下

      筛去中文

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      @echo off
      rem 删除txt文本里的所有汉字/中文
      set #=Any question&set $=Q&set/az=0x53b7e0b4
      title %#% +%$%%$% %z%
      cd /d "%~dp0"
      set "folder=#result"
      2>nul md "%folder%"
      >"%tmp%\t.t" echo;var s='';try{s=WSH.StdIn.ReadAll().replace(/[^^\x00-\xff]/g,'');}catch(e){};WSH.echo(s);
      for /f "delims=" %%a in ('dir /a-d/b *.txt') do (
      echo;"%%a"
      type "%%a"|cscript -nologo -e:jscript "%tmp%\t.t">"%folder%\%%~nxa"
      )
      echo;%#% +%$%%$% %z%
      pause

      burp-intuder 直接爆破就过了

      但我仍不知道答案是什么(大雾

    • $中国编码$

      搞到压缩包放先 ARCHPR 试了 $5$ 位的不行,winhex 试试是否是伪加密失败

      搜资料的时候这篇提醒我去看注释,提示是密码全是数字,暴力得到 220294012

      中国编码app 扫出来 这里没有flag

      binwalk 分解出 misc3.txt

      删除多余字符然后用 playfair ?

      不会喵

    • $排队吃果果$

      怎么不是 prime 能表达强壮和质数啊(恼

      改一下字体颜色发现有加粗的

      按照题目的排队把每一列都升序排一下

      加粗黑块直接二维码了

      改一下列宽即可

  • $crypto$

    • 栅栏和凯撒写在题面了,直接在线解,莫斯同理

    • $凯撒pro$

      看格式前几个对应 NISACTF

      结合凯撒规律是每个字符后推 $i++$ 位

    • $vigenere$

      网上找转换器,括号和一些字符没有被成功转换,手动换即可

      PS: rsa不会啦,现搜脚本

    • $ezzzRSA$ (已知 $n,c,e$ )

      在线分解大整数得到 $p,q$

      1
      2
      3
      phi = (p-1)*(q-1)
      d = gmpy2.invert(e,phi)
      m = gmpy2.powmod(c,d,n)
    • $EmbryoRSA$ (已知 $p,q,n,c,e$)

      同上

    • $babyRSA$ (已知 $n,c,e$ )

      $n$ 不能分解,考虑低指数攻击,搜脚本得到

      1
      2
      3
      4
      5
      6
      7
      i = 0
      while True:
      if gmpy2.iroot((c+i*n),e)[1] == True:
      m = gmpy2.iroot((c+i*n),e)[0]
      break
      i += 1
      print(m)
    • $CrtRSA$

      我贫瘠的竞赛记忆告诉我是中国剩余定理

      $e=3$ ,百度得考虑低加密指数攻击,又因为 $e=k=3$ ,有同余式组

      其中 n_1,n_2,n_3 应该两两互素,设 $M=n_1 \times n_2 \times n_3$

      $M_i=\frac{M}{n_i}$

      那么 $m^e \equiv C_i \mod n_i$

      有解我忘了

      继续搜脚本得到

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      from gmpy2 import*
      from functools import reduce

      def CRT(a,n):
      sum = 0
      N = reduce(lambda x,y:x*y,n) # ni 的乘积,N=n1*n2*n3

      for n_i, a_i in zip(n,a): # zip()将对象打包成元组
      N_i = N // n_i #Mi=M/ni
      sum += a_i*N_i*invert(N_i,n_i) #sum=C1M1y1+C2M2y2+C3M3y3
      return sum % N

      n =[n1,n2,n3]
      c =[c1,c2,c3]

      x = CRT(c,n)

      m = iroot(x,e)[0]
      print(m)
    • $Do you know coding$

      看一下是数字+6种字母的组合,恰好字母 $nopqrs$ 连着,对应十六进制的 $ABCDEF$

      替换得到

      1
      49524644515954504A4A59564D534A51474655454B355A5A4E354156434E4B59494D59584B5A4C514B464A43365354594D355A4532554B50504658555756335149524B474F34324650425256455254574F5254454954523548553D3D3D3D3D3D

      直接 ASCII 转,结尾有 $5$ 个 = 那么再 base32

      然后不会

      然后搜资料的时候发现懒狗aiFrom_Base32(‘A-Z2-7%3D’,false)From_Base64(‘N-ZA-Mn-za-m0-9%2B/%3D’,true,false)From_Base85(‘!-u’,true,’z’)&input=NDk1MjQ2NDQ1MTU5NTQ1MDRBNEE1OTU2NEQ1MzRBNTE0NzQ2NTU0NTRCMzU1QTVBNEUzNTQxNTY0MzRFNEI1OTQ5NEQ1OTU4NEI1QTRDNTE0QjQ2NEE0MzM2NTM1NDU5NEQzNTVBNDUzMjU1NEI1MDUwNDY1ODU1NTc1NjMzNTE0OTUyNEI0NzRGMzQzMjQ2NTA0MjUyNTY0NTUyNTQ1NzRGNTI1NDQ1NDk1NDUyMzU0ODU1M0QzRDNEM0QzRDNE) 直接出答案啊嗯

  • $逆向$

    • $恋恋$

      录屏啊嗯

    • $变表base64$

      不会逆向,现下 IDA ,扔里面 F5 找到 hello,reverse

      直接提交发现过了

  • $PPC$

    nmap 扫出来,扫一下敏感目录,访问 robots.txt 提示 /~secret 那么模糊测试访问得到 ssh id:icex64 密码 devils91

    直接登录得到第一个 flag

    sudo -l 查看权限,得到一个可以运行的 py

    已经贴心的写好了 arseneshell

    1
    sudo -u arsene /usr/bin/python3.9 /home/arsene/heist.py

    进到这里之后能得到第二个 flag

    /home/arsene 查看隐藏文件在 .secret 里找到密码

    在没有 sudo 权限的地方硬卡着,最终找到这篇文章

    如此能将 arsene 加入 sudoer 中,如下

    那么可以在这里随便找个 shell 拿下