某CTF比赛部分wp
1、簽到題
Base64解密
2、取證分析
鏈接:https://pan.baidu.com/s/1ApHO_UnIzKyK2TDNOxzaEQ 提取碼:7fh4
使用vi -r 查看,cat有時也可行
3、圖片隱寫
題目:
(1)使用Imagej打開該圖片
(2)依次選擇Process-Math-XOR,XOR值為10011111
(3)依稀發現隱藏的flag,ctrl+shift+T調節顏色,找到flag
4、數據包分析
鏈接:https://pan.baidu.com/s/16YgHcZKDWPAH53Pyx883Mw 提取碼:l545
(1)wireshark打開數據包,導出對象HTTP
(2)發現可以數據包,保存查看獲得flag
5、柵欄加密
鏈接:https://pan.baidu.com/s/1AqnpTLE9Fnf586aVdqmQXg 提取碼:w3p6
直接放到網址中:https://www.qqxiuzi.cn/bianma/zhalanmima.php
6、Vi
鏈接:https://pan.baidu.com/s/1Bhb7kAD2gT_XKp7dJ64c1g 提取碼:zagy
直接解密
https://www.guballa.de/vigenere-solver
7、Disk
鏈接:https://pan.baidu.com/s/1zZ9dx9dx3cm5LYENaUkJdg 提取碼:tros
(1)看名字和磁盤有關,進行掛載查看
(2)在掛載的disk目錄中發現壓縮包,但需要密碼
(3)使用unmount disk卸載磁盤,并使用extundelete恢復文件,命令:extundelete disk1 --inode 2,發現最底下有個被刪除的數據(p@ss_wd~)
(4)我們進行恢復,命令:extundelete disk1 --restore-file p@ss_wd~
(5)得到密碼后打開加密的壓縮包
注:先進行掛載,然后解壓里面的壓縮包
(6)打開圖片發現有三個問號,沒有flag
(7)嘗試修改圖片長度和寬度,將01 90改為02 90后保存
(8)再次打開圖片,出現flag
8、hssql
(1)抓取post包
(2)使用sqlmap一把梭
9、ssrf
(1)根據提示,找到.index.php.swp文件
(2)vi –r修復swp文件,發現index.php源碼
(3)經過代碼分析,繞過限制,payload如下
10、RSABD
鏈接:https://pan.baidu.com/s/1zutDh5uFWSUqGKYNNY8jrw 提取碼:tlc2
題目如下:
cipher.txt內容:
0x1055f45639da0fe7ebb355a6f140425fb2d10b74a61860e60cdadc0d205d4905833a20dac9c2e2a873872f1b5d6ac045c996b9136414b8648b6fc821aea718fd4175324fc254bcaeb2cb2065bcf76d1351b483c2caf87a89ed3a3b0933d82466f6d022b728b85db547596509fb8a2d46ee920d306f5d591f50a6ad2c505c9c32e30dcd18faf1500cc1d79b1505dab7ab05943ff9bb4a0de531e9c609a4f5cdb850c611e673f18d89557e46a48bb35e09e10a521c7b45eb3aac85ddb4684b7695815c79b8300f991582b99299a5c28361247e4902da13f267ec7a925de0cd4d2d0ba2a2f47914d8c3b10a1dbc045f74a4d8617dfe0657aec8045deafbe60dd6d7aL
Pubkey.txt內容:
65537
33774167600199691072470424898842928168570559940362770786060699320989546851695106466924163816843729828399984649770900793014896037884774039660562546937090412844276185560384964983508291174867808082182386566813393157054259464108858158903739578119760394228341564696225513954400995543629624209942565369972555679980359992955514826589781286738100616149226885302403505062415492679633217275379153421830105021673417544608398249866398042786421630495968810854036782025120509999022773806069591080190166920079688217334968528641747739241234353918892029263544388161160427668518991666960251381106788899451912317001247537576428186291689
做題時,沒有用到題目給的encrypt,用的某大佬的腳本
解題過程如下:
(1)用腳本分解n得到p,q,腳本如下
得到p、q
p:177993461816075408240866752227210319316825574291000376727523991315086097605063837563342286560819823849610146713383370383386260295565108973920944593141677024612114517119831676665456754235233172344362610684938542774386956894066675103840244633202469661725050948177995671009070311486253646420435061175078660441183
q(n/p):189749484366449861630736482622030204229600074936733397229668738586605895979811823994029500725448581332746860468289540041125768726148614579255062994177531727784605194094836998282676712435286273497842956368997116036170165393912022560935791934662695453870846024312915604049805219410140420469163797779129644454583
(2)使用腳本求出d
# coding = utf-8def computeD(fn, e):(x, y, r) = extendedGCD(fn, e)#y maybe < 0, so convert itif y < 0:return fn + yreturn ydef extendedGCD(a, b):#a*xi + b*yi = riif b == 0:return (1, 0, a)#a*x1 + b*y1 = ax1 = 1y1 = 0#a*x2 + b*y2 = bx2 = 0y2 = 1while b != 0:q = a / b#ri = r(i-2) % r(i-1)r = a % ba = bb = r#xi = x(i-2) - q*x(i-1)x = x1 - q*x2x1 = x2x2 = x#yi = y(i-2) - q*y(i-1)y = y1 - q*y2y1 = y2y2 = yreturn(x1, y1, a)p = 177993461816075408240866752227210319316825574291000376727523991315086097605063837563342286560819823849610146713383370383386260295565108973920944593141677024612114517119831676665456754235233172344362610684938542774386956894066675103840244633202469661725050948177995671009070311486253646420435061175078660441183q = 189749484366449861630736482622030204229600074936733397229668738586605895979811823994029500725448581332746860468289540041125768726148614579255062994177531727784605194094836998282676712435286273497842956368997116036170165393912022560935791934662695453870846024312915604049805219410140420469163797779129644454583 e = 65537n = p * qfn = (p - 1) * (q - 1)d = computeD(fn, e)print d得出d:
11264411788839355592444856301614488363956471904061056255881635805090094375457400203763192894221130759558216953395674955120307575813439598378024263407707436165069943146297428393266768825247731038349979486052262807679509336199267919454932934045527300563698215071335234814155316242621058729891886931914187742084664702392602429806835617468209844338711315548455315452692700616464465563108767921693721150452939650725153874644898636543732854250641129411206109642819488878782249575130672657182665780011560050159281212359222980210472602178746411982328739935093883590670811966243661382699777078747677158108250557964576989602089
(3)用腳本算出明文
n = 33774167600199691072470424898842928168570559940362770786060699320989546851695106466924163816843729828399984649770900793014896037884774039660562546937090412844276185560384964983508291174867808082182386566813393157054259464108858158903739578119760394228341564696225513954400995543629624209942565369972555679980359992955514826589781286738100616149226885302403505062415492679633217275379153421830105021673417544608398249866398042786421630495968810854036782025120509999022773806069591080190166920079688217334968528641747739241234353918892029263544388161160427668518991666960251381106788899451912317001247537576428186291689 c = eval('0x1055f45639da0fe7ebb355a6f140425fb2d10b74a61860e60cdadc0d205d4905833a20dac9c2e2a873872f1b5d6ac045c996b9136414b8648b6fc821aea718fd4175324fc254bcaeb2cb2065bcf76d1351b483c2caf87a89ed3a3b0933d82466f6d022b728b85db547596509fb8a2d46ee920d306f5d591f50a6ad2c505c9c32e30dcd18faf1500cc1d79b1505dab7ab05943ff9bb4a0de531e9c609a4f5cdb850c611e673f18d89557e46a48bb35e09e10a521c7b45eb3aac85ddb4684b7695815c79b8300f991582b99299a5c28361247e4902da13f267ec7a925de0cd4d2d0ba2a2f47914d8c3b10a1dbc045f74a4d8617dfe0657aec8045deafbe60dd6d7aL') d = 11264411788839355592444856301614488363956471904061056255881635805090094375457400203763192894221130759558216953395674955120307575813439598378024263407707436165069943146297428393266768825247731038349979486052262807679509336199267919454932934045527300563698215071335234814155316242621058729891886931914187742084664702392602429806835617468209844338711315548455315452692700616464465563108767921693721150452939650725153874644898636543732854250641129411206109642819488878782249575130672657182665780011560050159281212359222980210472602178746411982328739935093883590670811966243661382699777078747677158108250557964576989602089 m = pow(c, d, n) print hex(m)得出結果:
(4)去掉頭尾,即0x和L,復制到Winhex中,注意復制時選擇ASCII Hex
得到flag
11、Keyboard
鏈接:https://pan.baidu.com/s/1v8lB12A5-JEtLqnUrnHu7w 提取碼:2e1s
題目中有一個流量包,和一個壓縮包,解壓縮需要密碼
這個流量包,使用wireshark打開
發現這是一個usb的流量包
對照表來獲取數據,例:
0c對應的鍵盤數據為小寫i
注:如何區分鍵盤是大寫還是小寫呢?
看下圖:
還有需要注意的是一定要看第六個數據,其它位置的數據不算鍵盤輸入,例:
最后比對結果為:
由于兩次輸入CAPS LOCK互相抵消,這里就不顯示了
ipaoover1Ohonk$jAeAsjoOFNanlek$3kAisqqJxq3@qFFrfFaasswd
在linux中使用vi在鍵盤上打出
最后使用密碼解壓縮,得到flag
總結
以上是生活随笔為你收集整理的某CTF比赛部分wp的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 联想小新 Pad Pro 12.7 安卓
- 下一篇: 极夜秦淮 DM 系列机箱开卖:适配华擎