<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      2019年領航杯 江蘇省網絡信息安全競賽 初賽部分writeup

      賽題已上傳,下載連接:https://github.com/raddyfiy/2019linghangcup

      做出了全部的misc和前三道逆向題,排名第10,暫且貼一下writeup。

      關卡一 編碼解碼

      base64解碼即可。flag:

      WelcometothepilotCup

       

      關卡二 取證分析

      注意到DNS查詢名QNAME前面有一串16進制的串,先寫腳本查看一下字符串:

      from scapy.all import *
      
      r = rdpcap("pacp.pcap")
      
      a = ""
      
      b = ""
      
      for i in range(0,len(r)):
      
      a = r[i][DNSQR].qname
      
      b = a.replace(".skullseclabs.org.","")
      
      print (b.replace(".","")).decode("hex")

       

      得到了

      看來方向是正確的,并提示我此流量是使用dnscat2生成的。

      在輸出中,還可以找到 IEND。因此存在被傳輸的PNG文件。

      把部分字節dump下來,發現與圖像相關的字節在跳過9個字節之后開始。于是寫腳本生成圖片文件:

      #!python2
      
      from scapy.all import *
      
      r = rdpcap("pacp.pcap")
      
      a = ""
      
      b = ""
      
      c = ""
      
      new = ""
      
      f = open("filedump","w")
      
      for i in range (0,len(r)):
      
      if r[i].haslayer(DNSQR) and not r[i].haslayer(DNSRR):
      
      a = r[i][DNSQR].qname
      
      b = a.replace(".skullseclabs.org.","")
      
      b = b.replace(".","").decode("hex")[9:]
      
      if b == c:
      
      continue
      
      c = b
      
      if 6 < i <365:
      
      new = new + b
      
      f.write(new)
      
      f.close()

       

      用winhex打開,發現確實如此。

       

       

      把首尾的垃圾數據刪掉就能打開此圖片了

       

      FLAG:b91011fc

       

      關卡三 steganoⅠ

      查看16進制,發現flag

      steganoI

       

      關卡四 stegano

      用binwalk掃一下,發現圖片后面還包含了其他文件,提取后得到一個solution.txt,打開就是flag。

      EORDFFOMFPMA

       

      關卡五 LSB

      其實這道題不是LSB隱寫,是吧flag寫到了一個通道里,用stegsolve可以看到。

       

      ONPGRAMBCICM

       

      關卡六 恢復與解密

      用取證大師直接把刪除的內容回復,可以看到很多文本。

       

       

       

       

      有價值的是這個

       

      在網上搜這個字符串,會指向https://blog.csdn.net/weixin_42213572/article/details/80322393

      ,應該是其他比賽的題。

      腳本:

      #!python2
      
      import string
      
      from base64 import *
      
      b=b64decode("aWdxNDs3NDFSOzFpa1I1MWliT08waWdx")
      
      data=list(b)
      
      for k in range(0,200):
      
          key=""
      
          for i in range(len(data)):
      
              key+=chr(ord(data[i])^k)
      
          print key+"\n"

       

       

      挑一個最有可能的提交就是了。不要糾結為什么這么做,一道沒水平的腦洞題而已。

      jdr78472Q82jhQ62jaLL3jdr

       

      關卡七 文件提取

      用記事本打開文件,發現是data:image/jpeg開頭的一個base64格式的圖片,還原圖片后把圖片用winhex打開,在末尾發現flag

      flag{068EEF6A7BAD3FDF}

       

      關卡八     凱撒Ⅰ

      基本的凱撒密碼,用工具枚舉出所有可能,挑一個最有意義的。

      MOCONLFPEOLD

       

      關卡九 凱撒Ⅱ

      改成了ascii碼下的凱撒密碼,所以需要寫個腳本枚舉。

      #include<stdio.h>
      
      #include<string.h>
      
      #include<windows.h>
      
      int main(){
      
      int i,j;
      
      char str[]="\x0B\x33\x33\x28\x20\x2E\x33\x26\x70\x20\x3D\x33\x39\x20\x37\x33\x30\x3A\x29\x28\x20\x33\x32\x29\x20\x31\x33\x36\x29\x20\x27\x2C\x25\x30\x30\x29\x32\x2B\x29\x20\x2D\x32\x20\x3D\x33\x39\x36\x20\x2E\x33\x39\x36\x32\x29\x3D\x72\x20\x18\x2C\x2D\x37\x20\x33\x32\x29\x20\x3B\x25\x37\x20\x2A\x25\x2D\x36\x30\x3D\x20\x29\x25\x37\x3D\x20\x38\x33\x20\x27\x36\x25\x27\x2F\x72\x20\x1B\x25\x37\x32\x6B\x38\x20\x2D\x38\x03\x20\x75\x76\x7C\x20\x2F\x29\x3D\x37\x20\x2D\x37\x20\x25\x20\x35\x39\x2D\x38\x29\x20\x37\x31\x25\x30\x30\x20\x2F\x29\x3D\x37\x34\x25\x27\x29\x70\x20\x37\x33\x20\x2D\x38\x20\x37\x2C\x33\x39\x30\x28\x32\x6B\x38\x20\x2C\x25\x3A\x29\x20\x38\x25\x2F\x29\x32\x20\x3D\x33\x39\x20\x38\x33\x33\x20\x30\x33\x32\x2B\x20\x38\x33\x20\x28\x29\x27\x36\x3D\x34\x38\x20\x38\x2C\x2D\x37\x20\x31\x29\x37\x37\x25\x2B\x29\x72\x20\x1B\x29\x30\x30\x20\x28\x33\x32\x29\x70\x20\x3D\x33\x39\x36\x20\x37\x33\x30\x39\x38\x2D\x33\x32\x20\x2D\x37\x20\x31\x25\x37\x37\x32\x34\x2A\x33\x25\x37\x26\x37\x72";
      
      for(i=0;i<129;i++){
      
      for(j=0;j<strlen(str);j++){
      
      putchar((str[j]+i)%128);
      
      }
      
      putchar(10);
      
      }
      
      system("pause");
      
      return 0;
      
      }

       

      答案:

      Massnpfoasbs

       

      關卡十 ascii

      對照編碼表,把ascii還原出來即可。

      Ihbdsieopdcn

       

      關卡十一       forensics

      用foremost提取docx文件里的所有文件,第二張圖即是flag

       

       

      關卡十三       OldCypher-Easy

      維吉利亞加密

      在這個網站破解https://www.guballa.de/vigenere-solver

      flag{d06f849b8bb85a5821aa7d9aa5169a38d620016f}

       

       

      關卡十四  MasterofZip-Middle

      level1:因為是純數字,所以先暴力破解,得到密碼19950453796

      解壓后出來Readme.txt和level2.zip,發現level2.zip里也有一個Readme.txt,把已知的Readme.txt壓縮后發現與level2里的文件crc相同:

       

      此時符合zip明文攻擊的條件,用AZPR攻擊后得到一個無密碼的文件,解壓得level3.zip。

      經過不斷測試,level3是一個偽加密,用ZipCenOp工具可以還原正常,解壓得到圖片flag.png,檢查后發現crc校驗不對,推測是高度隱寫,把高度手動修改即可看到完整圖片

       

       

       

       

       

       

      flag{4537ec3bd52ba2b41c4a780db841efc3ddccc4a4}

      關卡十五 數據包分析-Easy

      用strings直接可以看到flag

       

       

       flag{3eyufhnj87}

       

      關卡十六easyelf

      可以直接用angr分析,腳本:

       

      import angr
      
      import claripy
      
      p= angr.Project('./easyelf',auto_load_libs=False)
      
      state=p.factory.entry_state()
      
      simgr=p.factory.simgr(state)
      
      simgr.explore(find=lambda s: b"right." in s.posix.dumps(1))
      
      print(simgr.found[0].posix.dumps(0))

      flag{Thunk_c0des_xoR_thr3e_de4l}

       

      EasyRSA

      phint和qhint就是常見文章里的dp和dq,他倆加上c、e、n全部已知的話是可以實現任意密文解密。

      參考文章:

      https://skysec.top/2018/08/24/RSA%E4%B9%8B%E6%8B%92%E7%BB%9D%E5%A5%97%E8%B7%AF(1)/

      腳本:

      import gmpy2
      
      import libnum
      
      e = 65537
      
      n = 16969752165509132627630266968748854330340701692125427619559836488350298234735571480353078614975580378467355952333755313935516513773552163392952656321490268452556604858966899956242107008410558657924344295651939297328007932245741660910510032969527598266270511004857674534802203387399678231880894252328431133224653544948661283777645985028207609526654816645155558915197745062569124587412378716049814040670665079480055644873470756602993387261939566958806296599782943460141582045150971031211218617091283284118573714029266331227327398724265170352646794068702789645980810005549376399535110820052472419846801809110186557162127
      
      dp = 1781625775291028870269685257521108090329543012728705467782546913951537642623621769246441122189948671374990946405164459867410646825591310622618379116284293794090970292165263334749393009999335413089903796624326168039618287078192646490488534062803960418790874890435529393047389228718835244370645215187358081805
      
      c = "0x7b5d1ea2d92df27239817ce8d885e1f66569dd41e075efc13d09dd1df673a8fba68ec7487c1552028e9eb9ba6663983f96d01925bbdfd18398e44f970257fa0f96b6ec915d05d637ebb4c8f4c56c44b2bb46bd1afe5a67acd640585dccf1681155308c0663cb57fccdc10c097c454dafdd2a96ccd08e9a2a8b0a9727bbe9945e579b0652d1c1d826305f0dd716cfb647cadb8eca1a0286dfb938b60b89981403d4faa6df54cfac0fa4699c97aeba6e82ab575cd6aa4421018cf9b404836c02b5301dbc475a0bcc5eef86bcbeb89a73355dbeb80e7b4d23c7a39f32c6b6138125c73892633f46b0bf1114aa67f09e1d394dfa4020e318f7d8004b84fc835b1ee9L"
      
      c = int(c[:-1], 16)
      
      for i in range(1,65538):
      
          if (dp*e-1)%i == 0:
      
              if n%(((dp*e-1)/i)+1)==0:
      
                  p=((dp*e-1)/i)+1
      
                  q=n/(((dp*e-1)/i)+1)
      
                  phi = (p-1)*(q-1)
      
                  d = gmpy2.invert(e,phi)%phi
      
                  print libnum.n2s(pow(c,d,n))

       

       

      關卡十八 KEYboard

      首先查看流量包,可以發現是抓取了鍵盤輸入,第三個字節是有效鍵位,

      所以對照鍵位表一個個的讀:https://web.archive.org/web/20160505193717if_/http://www.usb.org/developers/hidpage/Hut1_12v2.pdf

      可以還原出來輸入內容:

      ipa<ESC>oover1<ESC>Ohonk<ESC>$jAe<ESC>As<ESC>joOF<RET>Nanle<ESC>k$3kAis<ESC>qqJxq3@qFFrfFaasswd

      但觀察到里面有ESC等控制符,經過不斷嘗試,發現是在vim里的操作,于是使用gvim,照著敲一次可以得到:

      passwdishonkover1esOfNanle

      所以解壓密碼是honkover1esOfNanle

      用這個密碼解壓壓縮包secret.zip即可。

      flag{aa3783395a0e50e0cd1e714e5427d8c0cc1a7fe5}

       

      關卡二十四   EasyRE

      用IDA打開,可以看到程序會把一個固定串按照偶數位在前奇數位在后的順序與輸入進行比較。所以寫出解密腳本:

      #include<stdio.h>
      
      #include<string.h>
      
      int main(){
      
      int i;
      
      char str[]="lfgaL{teU__stsr4_t3R3vSr}e";
      
      for(i=0;i<=strlen(str);i+=2){
      
      putchar(str[i+1]);
      
      putchar(str[i]);
      
      }
      
      return 0;
      
      }

      flag{Let_Us_st4rt_R3v3rSe}

       

      關卡二十五 EASYReverse

      用IDA打開,可以看到程序是吧輸入進行處理,再與一個固定串進行比較。由于處理過程涉及位運算,故無法從固定串逆推出輸入,所以必須用符號執行的方式破解。

      把關鍵的輸入處理代碼提取出來,稍作修改后重寫出一個程序。在這個簡化版的程序就可以用angr直接跑出flag。

      程序代碼:

      #include<stdio.h>
      
      #include<string.h>
      
      int main(){
      
      int v3,a3; // edi
      
      int v5,index; // esi
      
      char input[39];
      
      char newstr[53];
      
      char target[]="IVaQIg]:DfDcL7=VN64bF3TfEE=WCCDh<c@fM3ADHCPgME9ANGd";
      
      scanf("%s",&input);
      
      v3 =strlen(input);
      
      a3=strlen(input);
      
      v5 = 0;
      
      index=0;
      
      if ( a3 - 2 > 0 ){
      
      do{
      
      newstr[index] = ((input[v5] >> 2) & 0x3F) + 48;
      
      newstr[index+1] = (16 * (input[v5] & 3) | (input[v5 + 1] >> 4) & 0xF) + 48;
      
      newstr[index+2] = ((input[v5 + 2] >> 6) & 3 | 4 * (input[v5 + 1] & 0xF)) + 48;
      
      newstr[index+3] = (input[v5 + 2] & 0x3F) + 48;
      
      v5 += 3;
      
      index += 4;
      
      }
      
      while ( v5 < a3 - 2 );
      
      v3 = a3;
      
      }
      
      if ( v5 < v3 ){
      
      newstr[index] = ((input[v5] >> 2) & 0x3F) + 48;
      
      if ( v5 == v3 - 1 ){
      
      newstr[index+1] = 16 * ((input[v5] & 3) + 3);
      
      newstr[index+2] = 32;
      
      }
      
      else{
      
      newstr[index+1] = (16 * (input[v5] & 3) | (input[v5 + 1] >> 4) & 0xF) + 48;
      
      newstr[index+2] = 4 * ((input[v5 + 1] & 0xF) + 12);
      
      }
      
      index += 4;
      
      newstr[index+3] = 32;
      
      }
      
      newstr[index] = 0;
      
      if(strcmp(newstr,target)==0){
      
      puts("yes");
      
      }
      
      return 0;
      
      }

       

      Angr破解代碼:

      import angr
      
      import claripy
      
      p= angr.Project('./basere',auto_load_libs=False)
      
      state=p.factory.entry_state()
      
      simgr=p.factory.simgr(state)
      
      simgr.explore(find=lambda s: b"yes" in s.posix.dumps(1))
      
      print(simgr.found[0].posix.dumps(0))

      結果就出來了:

       flag{JSe3psfxa2X96USgM58346t4Ta87uRQy}

      posted @ 2019-11-26 23:04  omegablank  閱讀(2087)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲欧美综合中文| 国产黄色一级片在线观看| 亚洲人成网站观看在线观看| 日本熟妇色xxxxx| 久久国产av影片| 国产精品一区二区小视频| 成人精品一区二区三区四| 亚洲高潮喷水无码AV电影| 在国产线视频A在线视频| 亚洲男人电影天堂无码| 无码视频伊人| 国产成人av一区二区三区不卡| 亚洲偷偷自拍码高清视频| 国产精品无码mv在线观看| 日韩av中文字幕有码| 看免费的无码区特aa毛片| 久久精品国产一区二区三区不卡 | 成都市| 国产精品国产三级国产专业| 国产又色又爽又黄的在线观看 | 国产精品福利在线观看无码卡一| 蒲江县| 亚洲国产大片永久免费看| 国产欧美日韩亚洲一区二区三区| 久久久久无码精品亚洲日韩| 老色99久久九九爱精品| 亚洲AVAV天堂AV在线网阿V| 通渭县| 国产精品制服丝袜白丝| 99RE6在线视频精品免费下载| 亚洲一区二区三区啪啪| 国产做a爱片久久毛片a片| 色爱综合激情五月激情| 人妻系列无码专区69影院| 精品在免费线中文字幕久久| 亚洲欧美日韩尤物AⅤ一区| 四虎精品视频永久免费| 国产精品一起草在线观看| 91密桃精品国产91久久| 国产熟睡乱子伦视频在线播放| 日韩日韩日韩日韩日韩熟女|