From 83a7bb6257b916d848bf80220080630218ec37a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Ortega=20Froysa?= Date: Mon, 4 Oct 2021 16:29:36 +0200 Subject: [PATCH] Finished SQL Injection assignment. --- 1/GBD/assignments/inyeccion-sql.pdf | Bin 16514 -> 27160 bytes 1/GBD/assignments/inyeccion-sql.tex | 74 +++++++++++++++++++++++++--- 2 files changed, 67 insertions(+), 7 deletions(-) diff --git a/1/GBD/assignments/inyeccion-sql.pdf b/1/GBD/assignments/inyeccion-sql.pdf index 6f2f7c82e670932103f497c77f30513158eeb30a..6b7811732a1d5985c7bbf9842611ca9e8a76f5bf 100644 GIT binary patch delta 24701 zcmZs?Q*$9LCnFifloNMrym7Dj%47#CM(Gb1|~&&?byo;VVYKR1swrwE?* zqSDyVnzl%U9)g`fTi{fymoAm4@4s@Q%E^>oSI-b0qq8E1pZ7{lUtR5HG{4)8LycqI zrQN}LiRFYJm55xFt(9$ zUH)`rl|REwb~^8UVw9>GZABcBH&hxY^dzR}QvN16{h=3U9K`s+oPhJ=*LLqSY%jnAxfdQW&fOv@ zjl#=IFXGb*0d@>2Mi9M)>R zni}t{IKi%r>>3d1Bq<=W`eF1`SZsH~`=ESz)NQcFY4g&W`M1NlI|5$T?vh(EOm$X( zP7DsoWVL3K#WESrwvw4N#3q;QkX~*8)LPl(kNH)*xMwVI5$V!=Cprfm=99)Ae1mPU z9NTkRE+%o|W)O9J_yUbJNv}OIE5T#Vx=IBSnie0FU(T&Kpb;=p?Z&1pD&utVm_`-ZaRT^hY$8S!&NH#b)?X ziQGxq#i7>EdLDqE^8&#d3R(!zJnV_(rlJbadOcK}Xjrv#kcJZ0U}lfv!K4l8d`)H1 z@ABd%_+|DMbbl>9aq!L)kX-tB;@;blT3RYlqS6X1SR7j2#GZI>#bbOe1|rm7ZX$-e z9Q#uWg<-s#`Ccf)w;d*a$$dsrEOaHp80fze#LThTXb+h8y0O*6vjb~X$18<-(J!VM zPMyEJRDz$==LPvIG1Fx3I?r1Hly7uc*F5{TN}@LohYzdP>>SKAIyD`(9CRf440sR% z_3cA8d}v3(6XG@h0#Md1?umUp_~{fw{DyIvVyGMxY|#}M**RTW$?LVeC>Mzvn5BLL z$`wYv=nLRbZ-IdL(z|AzxQX0BZd~bxOcB{S%Py;#5hS~IwAZ8GhIPh36}(#+sC9A3 zC`xScCeyo^jh)nOp2lbIctnUwo416wQnoa!u#@fZheB*F-+CJ3+Kij8xF*KWqYCGa zucX9p1GZT}X%Bq4f%=$Of><~J9xZPq17%y_Qv!$`0uyj>bt!)s%O&ZlrHKGN1AVka zdSL?mbYBrSeLEfeOe(;5Un=duu5i(a^EC3pu+sb*Z_%S}FE$2=Wb6+1wIcF%X&h3% z9AlgsP$DNy#wg_CC-00mUhkFj)-6%%q@Kr1zKqj(omgp&#FK=)U57{>%_UB~{jP=P z8v!gLB{dH1AZEYIQ2Gt_5JlDF#agnc7lzWW=Y$lv;(WG`h&i;i*2Nv`kpUH1qT!#j zKbHPipVkn#Ab-Qrnt)+dTt_MJZ3h|zhiMQ4fg|E`dK#`zc3l|*b0xxY8;>&@(&8Wv zkE9Cwkyv68`z4e1nVVg=8v96ZW_SZESOBOO^lX>$EY2Q#Xm;N~KBq}!+b%U5cHWq~ zrR;s0Iqm`qtRBT(>U6CVdIEcg9^klmw!;c{&T&L`{IruBvN5lPDw8(&PP@I{>pFpO zl#rvQvLDy-vk?&n13!@9-24APUSRwp+Wv7m&XdAC?X>zfzAmWdyNGe+(5!Bo|X*gKgfWC1Cr$G;ve>@&rW{y@VbL7cD-5b|(uQH3UY>pPdO`XXQcBS7u{(U=@c35FET8i@ zv)=lqjNJNlym9L>oCJqSBytY1T>$CRaX0y54^o+G?wo)g7WS#y@)V{O{p*(s0HPc( zhY3$-+GE$&Qn!MF&5nH%9~;%p+2w*opl)UGEtkioIk1E$I{`Yx(qS*U0td)W#4=Kr zQKhDGLj5t-DV8+ufr`C^^TW^X_pBN(yc#okaC8UjJ<8VClc=R-5EGwICV&dJ5!|5l zbCh+Ci)kn8Zy{gWcV5VC*ZV<1E!P0cv@NYLyaI0RWTpFNQZS#zguy3-AWs-cJubh} zUHc?RvJE7Hu@}8ofq%%KHTN)P)9DD4-h z{~>!m=@F6>z|6?W`G0%$j#kHC5)QB73py8XVZ{`gYOGgGTdgV`AFOIgf>fPh}-w&rNC$dsC4i#?)$vxOfH-sHq+|F?-_8CA8t>S%x-An z!sZYXfoCwm-L`WW&ENEIhV0^~?dC;KAk0MFSYxyI|dDu!t)Ufi)U$n z4b%9i5?YJVjmT>)eY}JQ)E0bGQmvj%_eXeRhn(e9cNY2WWxlC8EODj6% ze4=4S24{z10)GjSE!HVByNJGLu8aRUD%{eS4a`bn-nK&%Xn`l)@v$QVjuQx1KNhEl zW1MSA$}@=*(=B$UqX=T5UYkZa4)^UC?*~j{>}?K zhFeykYj-ZUYj8};n(`n4g{`KRsf_>CH{$H|d53@+OquFEKl?+0#SB^U?noC0iw#j; zva?F}F#{~)p$M@RbxM9$PwY5185)NZ<3yM+P@Bd8?Kko_EKslPvRpuFBK>w-Brg(54YG%5fIjJQ9#IRy2TSY)8wz-2G z)KMjK=1^QWuyny_XlqjE&8h!2pr}|V_q%mebU>n(RPO9c{2q|-4~@`EDuSA zaC4mJ^Pn`bX)5M}EkITE(KXVj=m<1GejTgkw0^b&>35E1E~je z;^R#yInG_o8BxrH)J9@0T;wGk=9GG%AvDHCBZmbIyfbCwHRY6MYqrPF2IB#PQ5#hQvjk)g`)D&T14Jh77 z9l|SR<$u{ZuEAr1);H}J zQci0C-gPH9Qp#n@<4zv5jQ4VKrB?Znu4?kgUuPw)?HHDG8#+kPxIQHRQHG86Kq}?7 zxx~-zDX%pzKF)6X2bDIuZx7{; zxpsp$yK+#Kmnt0cX#2M>P56vwpMxf@CBTdmi*lb#GfA5ilgdK9W=aZJk34m2Tc<1n zKnb{XJKugsN~Smr+F5m$8}BFCS3#)Vb{pggw%TTl37$&MhRwbjC!y{y_kGQwHmYvg zyc8eU5WG^iSRF8B6l;a^!B#R#Qh&d(pJGLtEXtDP5E9N0|I~$CZ_kk2tX9+Mz%uJ} zxwlzkWvMp_tLpFgH-l5>jk(kO_2q2<9I8pJ>)JFm;gySsiZ#kYo|e<^Ccc>U5<4V( zNV)JJV5P00BQR`?^2A<%l*b(3+BRc%Kia+og@u1!R7t+s^QOfMz4|2krheiv^p_8f zwn?~?dY0$l>uInXJIKoOzec&*PI3_GHK5Ih4!3}{)m5l*Q!tzO;z#*S(a(Vc%x?Eu zJ8;SCzUe1264tv$e&!eYzu`|h@bVYW`_}3TmDdg}ab% zeDOGTjV7*AGy3alW|jnFgy0#bO>c~QJGQm;p!lg@Ms?bD8$To!B=m)LhyE7KtW-!H znudJ4IT+Hf$u-Lq@CnDd-*1hJGZspPjSzIyVMTZOtj4P1)=}^5ue%$~=^3&lFP`sz zxm)EGC7xJ&nTT%(DY~t8xgj1r;q&=(q0qe?VHEE=wk%!{R64U;|j$*#GY^ zk)t{wKg9T_=Mn8a5S_wlQMJ-rFi2`U-dhBheUj5@|CeDsGN;r88#%MF_3vZuUX#wF zT{ZBB77HiKaDzgT*Kc8e;A&ZQu$SiacM`|yiwV>$t;JD+0<;{4iU6V5>Ke3Rgv;5$ zLXHPe#K}K-Ab?W|8_2qcH$N!YRE9n?$+217Q@Bl}6L~I}RgPXZOpwRqK>I*yHC$X_ z2#be(It&_ez+Q)WsJ+%8Yfvcc8_-$;- zZu^eM*e_mUu^;uuzZ&d*UpD4;OLo;JXW=#Ao{20rNZC$V>?u-B%n@Go4C&2g4a_$& zRMg5@N47s(tKxBoq7~z?6lYUg{xkcRe&mc8rFKzG-;3Ak@<@$7u+FRUj!dI13T@

3t9A{SAGwLEclN%N5=X${y;2aR5~zb_NM=@obz8N z2V-j(X4a$wB(kJoFhsyiR4^mr*e(AEZWpbXNmV1E@S43)=T53N0im2Yhhh@q^L(2@ zk|Y98e7{5Q!==O|vWpF*O(zl3D zNWC@v*wOph!Y3aO4kLl*vWb=Fp3aeu?}Mq8P91V-)4vkL&Tq0Y35a1J!Uksf8p zGPi!y$!(0|k_YFn_&B_}oEDD)pVfCi{t1+lB5Ez({X_a8r{(0l;)YSYL=##(fjJFG z@|QujXz$f-qk*-p_ZL^0gilzF#4o#^;7d}1B1lGtdcNpNw3VI z!ML(S#-*@(E<6big}aiO*_Kz|=nT2Z>0DPyd&4F)RAgO`Rf$~+4}i}!dNGL_`G5Jr z$^3u$p_ja4-6V(@HrEryXGS=yPp9OGn_2ULC{aO?SF1Ad>iWJtKV4`0sQhzrs^w!WWvm+D={lx*1(5bqCH z^DF>p9AX^!=k9zyk9hC9Im0s=9S9VkQ>@?fg7)ZA$!A2_qF&eQ3traR53xK-%~Gip z7+Kz44-vYrW3_DC@MAAs_m^((&AJMSvZsNQf)K^Z@gQjJfQ+Dhi}d|8^nAPg6Glbw zzCWr%2+7jxtdawxriLtpusBO34^F7HBSD;dpb?LOjbJHuLfN-S$$|MqBE5gGQw;}3 zhjaERvvZ(x#;FmxjRdhbny|sH!=PJ=&%4FXFv11PrpmLZXmOupnaS?N1b6YjS?A z5(**_QvyV0>u_=CZVXSUux{E4?!#@>XDTi=rSGRX{%5vR(~dbsR$xb7XB7;#=8j}R z#jSlOv3scu30@w{f@(0?W6h>AmwhY4iq8hJOP_zQLEL9r+joJD%*EpdptCD#<0AbN z2}QN&$x~yv{bZ-K{S~x@N6Uj&3U_pS=zJUDV>Va4kZ0-9^`!v(LR^1+iHc@g%1Py) zG~Gm?mwYBR4}nJ&w@?o?&0bmqL7Eb0?FWLBuR#bsmK3sE6!F+IP@IJCu zkW7H6k)fq6V>9D$4eVlAdCWeR3nH(GY1}@Rj&LDnByl^Kx=3$-=l&|wk0@@SEI$Bz z5|o9KC&9{esgUoby3>jee%H20tHSCdws>r?QeIB)^cxgbwCgWSk_0IyfQ9uxQm|-X z^Iw$==*~kx44+4Q;jIlEi93g|`ci$Xr|kYJ1Y4vT;rnH&Yd#zt)xV?5k@W0TO{v1( z_$Cd@6b{9PX9W{8yepxf-tjtl$ZyrvxpA=XD%5@3m*J`GJg}pzZph>L@uNWizDIG} zKqIN$%^BdwpTcVn*PQI@ZE4u+rnVgC6x6GH-M_eOG|e|_5trmuzfy}uf7f`0CktAt zqS4BI#&)ypQR6TloSA-RiiJN`!NbMMXiYQ#NiuW)%wHUA( zfHc@GRk_2Z*W z*&A>HfQ1Wp`fblXoe^zS*WrVm9x|egwdm{b%>^^NxY%@gP@=)znqK!Cdhw=8uKA_A z+aa}MYaiqyzusp+Yg;SdQm8FOA>q`Q8&e@oR#dH>QX)1d#CTG6pt1rr0CHwOEx<9_TzfDzNWDHV5tAJ}v7SkY zNGpI<-Wrhx6OpFdQ<_Wut)!X}xB(<75RU8VW_NTL>z=N9ETpqoW*&q+KFGThL`aWC zh);-5EeJ-O(9|X!)mcy+rb9-w1~K|TC!d}SYDJAOR`U;vvC?^zIBgho!;{%_h&1Js zP&q@Yz(mM4ns;%5efm6Ps4d)OfkfDIdVE60Tf^}?4uq>_^_YGN$Jqzd>(&{DW%~2x zqKVK}DPH&2C!`(!zttosW)xt?Bz|P>CR11+2oM(L{~8Q*Kv-D+`wGCu!u22dtx2b!+1$^6thihpX z^5V|{Hr<}Ny&~GC7be_u35jjqmf;*sy)#FATZy z7SD_G#0DL4doTt98O)McN2X`{j5}iZ*eLh_RK)URZZ1yQEbAZFRQlGW+Na$H8T^uU zG}7nPcWI4HDUB_uweh0%1;UFi=ZxhshIyWK1M1hb&QH5!amuejw8a2NFVS-2#GGY5 zMoFUB#PHih=f0uupzm%p|K3HYj5>pMRjhLgy_0EcqkkX1F_g_A)pt4^f1~s z1m`g8rDAezs3+eoH6FP|!g?5bs6(=|i~XQ}PwBgSvVdRo8}>u@59H62@p`OM_pTcW zmao|#PFx8Rtvbc{w91(nlB4F#9c%3OXTF%ngz%ch*wh1of8cBsfvr*Ijz_|hiiLyvaGqb(uIkEPGOH?T*|9x2^aJ@VB`Kt}l6>xioJJK9IKK02M zrxUc15wvj7e*6!~_lZRFhc|Em32(^1tybvMnG8hev!6s?hh=m#6tSoPr6x8LK)+Js zmG1x@_6#>&ZnJ0Ent5I@#Q`O!z-@jma!(bt*|m(3Vw0O3g{8-JNSHivJX^mZ6R9mg z*!Q*OU{?tB3xpyQF^4ezAn#gcSN4^U^#GCw?B_({n?4B*$+M@~e z8SWrt5h_ukP_fh|Zq((@(2d&u+mG%E=I?p+u|$wPf2_={kHG3>3M|P`QUJpM451b! zUnO0@K8KRM)!RJ~Dq0nf@_H2N-hVL;TpQ5Tb)d-^flg$Q0?iEY*p%%KlW+f~&&&A} z9@Uf-NUl^Cxuz&X%qz@0&gL@PU*R~*5w5_NyK|%?KlTYqAm(H%*3l5q(fD+X%ern) z+bB-rpA81?s7lv7St{noc^+7azw5#0dp?PLXlAN{BQsWQ@t-4CpXY?71b*u+}cvE+OUi?K1zepuB z9E6X=qEwQrmJ?9j$AYKHcL|ADpE`A-u<%k=r|h5&W{Ka42`oz!3wL#ZU6DsZ>q@MHQ4O_MfIvM`nEaRE7G0?}JiWsUtGp3IUbeFb5NFCz|YRMIqNC zrf*c?Y&NZAQBG{OZb{8Vd+A-wddgJ<#aIy6j79;}kn=I}zjy|O5gjx;S#n}OzfQy> zgtrP-$LPaJL@E^`a^G}mD2x2Cpu|E;7l~DDkIHB4edD-r3^sVt?d-a}hggW9j;m1<#-|c~7 zx-$Yms|r2i*LK~K5C~qhqY=Ovby8;^F%=31ZYO%h+wQNS4NEe*t!JH6D+M@`Fi=7n zR!^N%?S+AZ9XT=k0AFthexaMmywqwKxs*wi(e7y)sAy`6#P$lPL)4r&6aptr{EoHh z8U6MHvHgf?#lZJcsMeRTh~tI{pf`1DbT@##WgvxJZ~IBHB$tSrK@CRZWa^NLE5<-5 zuQZ{!roB`lzYI6G%iOB@6KYGf7KmnK67)uA_r`Y8T5`wW+gd&+RWC`yUV@9apNIEL z>@OE&t3xBEW*_ssp_t(=z>ByRQ%P*`;jXfqlEF@ns#mFmMLRiOtLScX(Uf)i_i zTR$G&ForGk7;x60P|e@4T2GF0rBx-l#+nSF;}|@e;3G@CudeuWuNL3ro_>I)8cv#L zsa<|?Z4@LOt8TDBkN3@DNl>f}CF*ZyB(W=8t=-Ydpf7)QfX#><0<1{CBXa@zo zrlem!pEe(Aih79Oq#>l9GLBA3ak%7e9djhLwSH-hLHA!F^kwsILtO*|xbk{}`0;nT-equ@FLx;>XmrzhZgm?)k7!7JN` zDZBmSqjOblp`;30mN{gfeecBm!Zx#qjuo9Ep61l`+t(s05j*Kls!yDBHu zeifDc;suHhtW>-I1v$-=a9pe7sx`!;X&>78{F^?|Vssgpom>a`!KfW30H$N+x(9>H zXG{bB9@*Ipg}gBtB0(eM%(k-@GW8?Fij_$>_DTk9=gv!WaS6aiOG_%9Iuy<#w&8iN zrr4$mJCst0Cj&HQa*tN8;mZXIa~7XbSjy3jqeBL*80l2dJ=iVy7yrH#s$=187Iry` zE<(}YI28O{#ig+(%=$b0roQyq2CM;q)>v6LKV{ZfKGt}z-jO87%qu;RX7E8`fV5Il zEjLd3-vyLDoF%i|zeawq8lMlRGsEi^h2903r9umB@_I+@0+t zlBpNA%S$kuvEDsuf0w2Go?e|JglMGt(g_qFYWmO~aBUYpZgfh)P=;kTxRcy;FkGoa z-Si&2pwL#k)W~LmH!4Zvv#X1A6FF!=CSoT=)=*g&5`Y>|5Du~&!;U!^_aOGfmi8Y$ zKmi#WE6Z<%Us$hF#{M9<*${e-7gTqVn6b~e9BZ-MXf%EGiQA-)572ZG%Qoj?YAAi7 z1IXp!rmsb1cQsU!5(UubmFb${*YF!DxYFL&R+Wa6@T~s2ohx){u<6e(qU)KScSZ8^ z1CgFM>i{4lR=D6FGzxq56$qAb}Zt=Yenp&I22_YX^f}US^YEE(P41I@YxGi&KK@3XV&AWRiWBT7^oun)^(u zra1Wm*LVg}Oj0krp6*H!Ct@yX$!c80qQ9OBE^8W}Pl9PeWFC!Tul9dmYiIAaxUOghs;wcbDnE2vE`Bca`I$;Mk8OFKv>ooX-!`0EA?Ds@ z%DN62nIfkkBG7Pcudk_@s`VThn;qhgR#Q>D3dr|ooUwb#S6-HoJNsMlZ(gz@iyQ4h zs8cAD-}v^4p_ggXyS?16=jPVe7l7r8LT3+}uSz)PbR7-5=0xC=)-8 zN3TQ-OZ1uwWF=;SPrw$x3%54PuA;`wYFN109nqpgAnNTD0sW(bo$~&K?*PxkjSycs zvt+Z0+%Kq(VH)45W;7ja0x`u3GH$+jQ%jY=FxJSiAgm zU+<4EITvQG!W71Nw#g4Ei4f?`^oTND9Y)Q;~_|9l5O@uK<%Rd@Y5&cjF zv+RaZ!K2JD6uoZ{*BHb*usumBR6Vw}4GuxHI*BBfWeXC8KYxwTGL{T9us; zAd{T~kb8vaS_P`o-YVYLk+sCE*)s|S-DYzpv3OXID+OxWD$42_6;#n;%RqS%zty*Z zq|;|SA9699ZBu>M2#a`fRSPLyI@kp$W4DS<(a1?4>GGpN2kbO?A%FuN!glva$CnD0 zoMZzxn~JldaJG~ovCK(SJ*Pm~Ertlcm}H6Lc~9+FGn6kpz^nh6f3*gow-Xlss$GV( zsn!vnVwSZ*>ZWohHFDxo5Gqm~wrYw&zqYcT)IU(A;A#6Jj||b{Ey@IU>g0BI-Sbaz zni|^biYU%WB&a;j7T~W({9d-cv4G2Cp<5Maa=v6>(8)m|J$!#6@b_=^M~Ud&K55YO zQK%?X$pQ+lR2lb{KVvIar{Yz_p2iO`Zftn!tsuxEN5Kq96xsns-(k?;^Q&C78HT$eU*3StYPGV4Jqx7&SZAm*%(fBklye3pslaXZdg+2dq!KGP*e zrD3AOw3Vo5Tu>k=Hcqj~ux%iJg4|`P$(hA6VrZ-M1z_@FJgZ?kqjV$-vB@0JFl&?) z>C2u2`~89GmlGuJFd!y-l)!GXaefr8V7ii!EyO@~hv!Idpp#sfJWNhrOsZ6M+Wjh; zKOs3Wn`nwHZN2oNxAkT-9dQ#EvpLU<4KLmb(!)+7MzYY&A=Q%h@N_48x2WZeyHyS; zG4ZJl3<#!KRDp#h71R23eyF(I@hA>DgvysoASJtoUwK9W&`5lpN;gtBHYDk7QJGZ7 za`eNcy9L+#leKh>bD1xNH*ZX0x>$D@#z{Z`Gr`|?5SF3_&=L}DS78fQY^>GK;8s&) z5peb?;AJZeN%;lyjse+OFP_J*EB0NRI=VvV1B67xgNuo|1;U77Oi0w2`$T>$X7TLp z>Ix5t-Fx??pCegGs6Y~WqKiDkc@FsHAv=c{hCNo=K)EZr_~}b$jyK5~H-4J8)mpHP z5+}5x5$FrhS@qPi$@_TRK6ph4x(j|Ux=n?0-~8$c1Cwfl3-yXXC-i7!2pKZv-@sh; z0ZH4y2IzYEwWxsRU&;+neXb$NvpUenR2luAML%@tweIdUI?hK7y({Co?W@e$uYnbM zqT$VTufxRk!S(j!;}B99I58DCDhRhyZ`N$EaM-8^p<1B_0u4P-e}rw1obRH~+SA`> zKMbRkY3`o}2?p->T7Qpezsui(6o#uDz{gmr{)>>~ctSNvAG^rfk1UJpZJkXRRMkb# z(1;T_NCqvlHAV*oeGhH=Y;@G5M&b|B0Z!{8xD!Yi6-^BZEG%on=f&INV$aDjk;=&h z%9G&UBe6?Mj_8=d?l&Sl)73u#q?sS=2VNV{gsZn`8t8-gC7#DPJ|=(-XEs@l6nS^7 z(Yo&AYe4U6f?2f;QS#Xp4T`b|?e>X!aNvrfx#XClNoKAJPX?CN$Eh$4jfz_!|5AMI znuV#kCY;IZ-*Z2iFM;JWeenO0S^xXtD9N7`g`i#mUccjPFAS2c3KttwF#ss&0?2}j z$q)zVJYc|3`pjVP^ghe_xG;k0y%7W?uZ1Xz_yCA8QB;VKjzv-C;eM%N?|o zsKR_hF*#+B5Sc<~Fri~|!U-uwL{XuHEKEk$lf?4%Id7{AWw({*M!%1XPB)wD(0}$i ze&Kvy4Z$C_eGYkNpSM|Fxf9bFkLJ5mx34_6NB~4)BqBtp(VEy@%W>7qq0<>X`*BHZ zJnfNp7nOK~Attaf7|s$548mjbh&vd912=+&arvv4wCM+oYh(o?s6emn^XF-Yb`Rg( z<6F~^x#k7nGzCH-ZzK?5>29HMXz+VHV35OSiBvKy)=f4kZNF4{8V`L(%kwX^u$&HY zJ%F@zsNFpcM|iMp{&M3pSWF^y4@ly4(3s7c zSlvE)`_0?faPmTNRD>T$1AtJ? zalxinBUX`G7BMvXsZfSkKAX0e3Oboo`h(PC+~hc7nalhr{b+ZpThC-Hj_;hs9c;o; zDZ|Brhhya85{SrBP%!7DGwVc-%#xvLH4IxDHC~8ci$4O?xWVHcXS4#e8|Jl2tX<6V()*S@Hq{gDlI8q*~fxGDi^NE5`AP8<9idd z{q)K@>#_&5@O~sDzN&N{_=L-tK{Q5!83HtWiVlx4WdGj4tmE&*MBT{jDG!}G7QUc# zFeVUZrqZ><09y3c@FV|=cDlP_(QJ;|n zcXzvF#=adI;6$V_ftwy|>IX>>4Eocph2@^o(H==J#PQZoeTVK`(VgWcR_+Fer%@TWW$T{@S+>y=ML3d95L{aBH54I4R zK|kdUjQ|3cUX-`yUlJ+={Z@r)V#q2b-Tz z^Pxsd_#Yerkn^$8WdM{6SoTydLe-$?Jbpayo}~gp3gry#w!P%f@8z~}Ert0pk((`} z-6^Ai>iKo`j#9$ki^`#!+|svpmliw!)=6;Q=6>lBKaEcm3K((B^Zfi{-~uO{b%`5Z zH@q`-7nfoQSbfeh*w!tgV^i*lq2mx3RU`|ux?3chMwcsZh z%$}B}J(}PI#?a{Hl3hns&I@`92_-ovMk$nIk|0n&q^SpXWk$P6K4nC=%>`3!j{~D; z^zz8b)-NmX>^u)ATizb?XNCj08J=5626m{YjYrUd23>CsS^!@`}9CNfUY6U;u|&8&LPyQz}M@@mc3*1H}00 z#0XYW8G*~q-Vlvt_0&HOVf7IT371&TOE(tdhlg@YZ@ezNihV&=y$D2zGJw*}{pLK1 z%q%(Oy#0|PN<7cVMV*9hyD7P4`Ml03+8SCmE7;fQZiTgqmEtlot4`+5PkA06%#4S< z;Y?E8R6sA7q3H#_euVmx^lr@rKJ?#~h@=Lvjpr+yR6ps5?gKun*C)>yc?10?u=*Se zIXI5vv&ayL2cH>Xb)8NpZp(8zp5jq%_lA1Ie^Hlj->~ zcn#LnsXiB|JbZ+-`|;WUVC)pIhusVm4q!|VjqaBw1QVysssC*4W~gDI zqM{Qiax#B<;^g_n+#uZj1MFAJdKRC=bN+w_28ib&!u^uz&+AlYy`oH5%m4TSv031! zDWZzrvdC{*T7ZLt?ZdkY7raydGH5X>kBiLYSKXR3zMmKk-J2J1>u(oA?}Pr02aFN& z+IW+?h!ojv2vJ-~%1u|%Hl;ObI)M*l0*|b*0o)BN=(}n=?3eO(XSCPnlyRcBX=sL4 zX&8eAQj1<6TggzlF7f`N=$&OPBI96U{XELF-a&o8pXCWkQ+1HxQuQGMtS^Q2ioF>S z)?(q*3JE+f}PQLwXt1qBk3p2jF9wW6!yozQBn z^@t+uh5x=5VQieBi@X)KO}7_OM2{+D2I~!5XztJTUyj~X%mgg>rfQp50a+yyFt}l0 zp_AQ+(SuA|z)P=8V>RW>;p|0GwCH2;T}oDdEi>vWQ@H%PF2yx+o!3i{;CTy(-rw&o z{u%ztr(j}`vKQ^EMCZN0KK4)@TK$uAx6Y@y7OZ-mm2xeM9td>;zWPqrHp^gxl_}yp zDuz76ZD0&L-~US5%+OU60drS%l+<)}@$8t1Rm$hGxFPj>S&aN$P1$q~9;tZwJ~H01 z)+2|Crt+FwjHZV2$y#<^b$Db3T-FkB6zNH^hs#ZA^G+YkU#0NmkNQ93F7Z!-wtsI0 z1oPd8aO|xk9>eY*qW^h1%a!t*@O_xTg6c8O1eXa_XEx7nbGw*_0$5`)5iCO7dpJ3GvEc!+E|p?2)# zkWjaklO{7>*NDeKy;YZmha|=2bX*rBNtkA9&}Mn@(>nEs4cecOYV6lnM|SqD=tt~Q z&vkETeK%E6#>^8`-qm@HH|TT$f1ewJ@@$Q5$G^A$U~@Jz@1>ewUQXGh&gl7vKY~Iq z{H;;Kn5jk>0HI9~eAT77qJ~^30Wt;q`fm!B!hxeqqPF-Iqp*^A)&8>lQk_#yE(43a ziT*z3qX{zYCYNg<;IB$_oH`z-Yl?r#o>B}!@<7tP!7D*1iq#>V{ib$5h(uD^pH?!XlbXKQ?+ZbrfHDO@1I;^wb^QMXGyl&b#LUV3A8xOjG#^zI4g4{R5TTI> zI#&Dt`gbg=rszR~u=QN+zGb(dh)kh9Z#IRdO$q*Q{PeL5z zjoPxgxml~O(N^WN>21qb#&>;#_tI(MA-Lx5Os8CnX#u*Ek75XL!(jzO6fD0$YC?7|ZbF|vYmFlOVQmYcDJyOX(58b2*~x0vDL@7iZG6e^ zSV2Opp+83d$vcfRfOUO{um)C_DD&H}4;be^4RktTgwO){}TGfuS+IAgs(yn6Ceo`kvaszNx zqAiJ8Uv-#FoCyIK1%+reW&61tL4RAaWv%#g^}QbE>m7=ZSQZajeDHQRhIU=@vil)* znp9e)_milBC%g|;f*v(?HJk+J!3jG@%@%u)x?JspH>_9wMYvJbNvhm05B47~^bnT+ zvU<52+U_&z`vmQ-2u@aykU7h)8a;W2TT_UGi$pU12^#`f95jx*Wc@f2?_ObW@GV*fBb2=OJ^dcGYlx0t*>lJ>76W^Z6wd>dDm39TMNLBu|uVxSiNN2oio)Yv63Hu<%?v&FdykW~%W zsj)5I+Y3)R^+C4uI0OO8*QJDhIweOFmo4r2pQ7zcSuYCY@XDwFMZZB%&|S8JHBp%0DOm!&NVWQx_ahJumW<3+i!d5 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 Lp`(*glSTOt!%K+o delta 14166 zcmajGQ;;T5vn^P*?JnE4ZQHi3uWa^Lwq0GeZQJOo>axxG&zXssd+ywbdCP~~51FxZ z<<6CBXDow;1cRbdD2q!nurPAKQ5@Y~y~44uCZkdSn0Yt_1>xM>T`f!;;Ji0$wI&j_ zxeodvY#{ellN~!RcsMQdTP;@^GyF3MPNuc9Mh5u&pWi6tLPJHW&Xsm zrG4kf7^`ltIdJ{@S&XcE{G^`KdKg>r|2{-m=a7Us@#SKSSUI%B`nQNT==i4%uv_z# zkhcX10Q*wB154h8Ssf%vgud7{E7O_h-Hdl9?OsZEfAjo`9WHPQl=u}qLO)ChIul~D zW2#Q`D^u+RNBhu{;cE+Km}APbyXh{51Ezayj&XC}MMt~!Lm4hEox#p5^Dm_8YCex8 z?W( zl4-xaz3gZP&3LDlNfr`i3l?WfKjbs}iJFq}4LmlkP3=eBsoeva#4ptRMtU}=ebA7_ z*lL?rKEJQz8zza#q?njC51ho(enP#k32BVN+@S0=h=D&kaa3?*g|Ffg*9ZwL3U@#c zuoBl>(m5ws$W$4t;F9pWlFa;A5P~}}Qf%F``Iy~!>^F<$#7ps;VMxmwIew;AqW#~3 zq<%`5A)A$I#wwX8-nLqn3*o(ZGAxzecwpvV>fOk6iL1+K-xCXJ?baE23~TP)`2MnDQN z8A(&`76H#9G{Y2u?x4ylvtz4lA2hrfoDANxL)s@kcy@eRY)Zdbm*us#ON{}B|i_P5hotvHPL|prU|uUTfl3ccu5(@}ht!#Kol>gV?bS^LzZd@%}oP#PI23_3YW;`G!GTU2v6mG_!H_Qo250S zfmJXy#aA*Em4lnPAz=f(Wi!ZwL?TnqDb&Q%y&A~68@B_sFAK*Y%k3cB52yx!>#qJ`L8(M=15Vvk8;#WzkC zxrg@8{OtV;5w)A^LX1xYmtatfZ4=?3E zpyVUEw{RAY=Kl}0{Ks-KwS{BhBxWZ5FN2?-Nz%sN9e4wc4d7w>Um?gKdB--C8Ds1w zAV%LauBbr+H)`MAad0zrQ&2dIz@T6h<*CR?$c?mTJs2YJAKg#RUu+K@Iv&&?bEw^Z zaox(WV3!O;XxC6h+QbNPX~EhsuA9u~&%^%5}Tv!f9j6z_f(t$@?QEQag#XLhropF zxl#K3vC@6*D~OVif4h$b4w!jDuS2or|A)+SC8Lr9*x6bBM=pUPPQ}b9;WwXfzw~Np z>jyk(C8TMBDOI-&IBJ`4ik#J;0{z#azv9!`6r?{Xvo&=j(ZW|e>ICy3w)ax>CDRKCtdr-o?|88%gX|^ z7%d(z<>ZlPPJ?3xBS@DLLjpw0WJI=vt3XnfCxkIsMJmPRLorO{p;*8hqgY%7;7w;V z3gR?~M7Yxj(9g`TIKp@yB|S(g!nT29iQYMQM=?dT?1D9FgK4Yq{a#lq3N z>ka6@=3~;Pkf`0KOfnmE1j}M}S76YtP|}k+Z8!d&GI;Nhomu(tX&4HJ*RtHWo?V#B zC5Uw4!Q6GKFFIWS&Ombm*tq^jb2j*`=m}~ zdt4NY|Md#~gOW%VY{F@;8`skFl6=d&iYP2#-XU{|_)kj}`_q+JIys|zb?UKiQPouN zg#T38DLvl?=8o4wQvFM0{>t;imz|e=wrIz${|;cc`t2>HGq~b3W`3!O?1058`*Q<% z+5CJnhPpAVKGEzXa9)W;Pva_lx2&n>kM!C(rR6_zE~>ZUi|geiyfCwo2AO|{dy}n2 zy>zmR;ho8tJb%$+sR{GfNj1KfD7F~a?%U?o+Oy*h642Z4#CIp>MMGBSGg{}d3NY}b zJLduZNzm~&Hqx%-{}2!v*4rQ&5^2KHf&>d#T+$G&!8h^l313xFXd&b)h!<*^5aXf5 z;KfML&wX;x-R=(Hl}R3jEB4J~L21L}PX)wpKpUl3=R=R^Pf3QS2SLm!5B>;OvTIFx zaT#1U|E`Ot|D~HqXZpNKzt>FFQnY64<-kSIG5rC}q&JlNf2cMd-~luRfSc!kR9muv z-5@hY#LWlYY^j-ab`@qJMklY%nETNA%(bcOIT$CRP513y9S=>{f3Pd>;m%d?uxfWz zmnW*vo(a!=o|b_D>1zir4Bjv`K^smLmJ9W(=r3hVwE!3NF3Irm%f~^j&-ePTj|984 zS-UYO*=fLBIpLJBDgJLIW&iHw$~*aE_85KpN4W#}P>6s$D$Gsh_bojfT_LuC*R zjWIarQjWL=6ctimxglm1v2tZIre$?=Q?*6Aw&jP=_bu-yJ4oZB?dM+~yHZ}5ReQ%v z&P&ci-itmFr!(>B-@8kGfM!ivhWQGdcw zQ!x}N7yh?Oc5qLVa!-%&9X?ujs0sfJ%G5t(r$#M%Nf$uRSHg_-RA`;UsIewEGm&LH z;z)$qjq%R9kdJ8I%v2~A#P}Dv95^|vMilMnh|6S(jpKbij)b%_pkDTp)namaB27u_ zPE_iS)#!)tp87ZerJ;^qxO-Zqdr;+)Ch;&YB5G{P!c<76zK&g)9vQ<=W;K>91ua~a zpd?8ujE0IkrYA%!<&e6=G&18uQ@RArsFYlofCN5?dbr9sdVR+)KHa-PzYNVU>{ZTO zHhO(PgkDpY{LnZRKx>}{1k#d@tNej+g*#fM&Mo7ioBP@FL9 ze1qun!SnohjFHk%5QYzZG`r1rb3u!tKm=zK5B3P#UH45yN}WTPWnO6}J4q!ZeFz2|kNHj~TZk=P!uG_1cqcrU zlW~Qd56D^l7vCsc%7nMSJfjRz;!hA8-Sn zP!M{ILIY82$Uf9{+vzSclg@_wYNq1LX8_z6FRubXoQCd0(Vf#2u~#<}hYGYD-sUu- zE%>BX;jz~^KcqILI`V}zljTo$QG5HLGRpc00i%%0qC6oVlZ)l2OS1%@(~17?455F} zBO{4=SxPuIMV4-o2J@&@m-++g2w6U|>?Q}#4)|Y4IYC1Q+uh*4o1WdBDIT=pBr~2I zxdl6bVst#-Xya9oQc`Jdeo_Cr8Mr+Zyub)_g{Wxk@mr;5N(Xb_Us<={gdzR+WWT2{ zhV$LUP}!Iin#HfG5sFGxz84Wwyqv{6=$pC_%rSuT$W&PAAOVi30R@K@9jR3TtH0Ar+LXy-YB-?AVa= zJkx3GGbb)QXL%Vbll6Uvb;gN2% z*n;Q?d@=^Mw;P#5M^eTZCH z`{uxb;hTogjUpJ5tRi(r(Vv2(fWEK#ZulP-E#6#~fg+fLNAELoU$|ws5C0GVS(vl_ z4itN55)155q3XQfDWteYpV)9K?1x$J2uz%_L5hI`m3+6jzB!eP%iOX#In_Bk9-#o6 zfAnPfJ)s^rHnXI5EP5@a0JGp-V9>7cU}f=wGW+Mh=p^J?Jz~w#nxG*GY7v;+mtDHb z!f!J4cmx?Udo}JcMcv(i1fNX6zV%Xl*CqI>)UuWSQ+_=9IbAP!i~5j20UO(ivVRui z4G8$t%Plm|meq3?zgo{ua2}jnUe{+CN&;t{1Q~q0{56!NXA-Wa#2s;6&jr>m!OI48 zLIhSPUqHeO4j$rrr5i;1DN);rRJ>Y4LbgL<;?T&eB)BidG7ps|CuEQ^pmH@OjA z^t(N4-vgA-b7bMTaNrGX(kJ?3dj&C=2NvOuIdJX|jt)pil}Lk@nA1iNg*9Qv>wqmc zgzk^~yQIb9TdIfq$~z*!nD;mnB90}Fmuf&;63YtfAIALR-x=cc_wPw6u4;6AuS>J6 z>;!P|R1=U+goq45que5uF`x^NU(9nFjy!u-EL4VxKTZPG04ESJJL zuP_^WNL@L((<=bW<0+JU5KGz@g83_}r~|uosv_M|6`I627=A8ETwW#H0S08OZv{PFgz4jowOkcMTxn@8Imz21d@AHpWQs2KWR%0qR zw%M&C5rvd)?9}lRK}LX%wqDlyv6?rFgM(}K^7YD!1#U`bfd?8!{E;f6f zUM|$r#uq@nxzpNhdrtE*J*{4Tp_18pbvrHrKw8iBDRKX+OFbZ3<7F>0m7zI-{wCAx zuw}<8^!mYXb>Nry{4a$FMr#t?ILZQ>acqZhU=o{q=(RI{4qV%OLJs+a)UzV`SiynN zpnXN?bS|`zh%N8pe5);b7kA89J(K4A)pSJuEIU(uX@F!eQ)vdWA*p`<7U3q5N0hB1Xgh5Ml z=46V%XtM5JXRK{n)xRpuO#hkG5NWaKl=(QKe<1~dNeH%Tmbr(*JIQlSU3YT9-Gi&5 z{2Ty)=(J5Bo!4b^r?sGQ>z=qyN77!FK?tZc^j72YE3rPKd%cNsW?-|STk87SJLpEy zN+E#ruC(11UAh{2w80UA!tdEeGf zy<5yF_z6}TwHPeennCnpj_4k~CEfnaT@FC5**E5;!arS_kdGI%Xsg}|i+_A?pk=`m z?ZhCyP&38b$oa9=VI2GOKCSf}wy<4>sLXV(K2&H|fQjfJ=zJAbuFBqN&M=QT#+o>m zC-KJ`KYGur*bmu}Hiv^_53;+&L@bxldVA z4wREVUau}Rt<6)J9sf&L!8hOf90b6TKIvMDth757q=flO?*Kj#dIexh7p>_#X-PHB z_{6-(!&SCCIW#h+p1A_mJAD)wp)+qztzfCV|j6&4+cr!C7uwt)=4RON+om$u|v_yOD{U!2rW2n``-d zy!-*V6pH#^MmCHM%Rfw4G;Pm2q!9x~I-=_MnoSN7(=@!9isAkwCXz=+D<9RqAXLAL z!iF0IRrce&xV(0@tD!4#-AyNFkC;_8iHy{Bvy5g`6iYhBIK+E9EFkal-c|PdI572Q%5aLS4RCW^46oR^1g{gB}d8~{mO&Fzq%oCmNzl# z`J#8PY1*4@Y<4x_?yNfEHq^VH3WSzW=96x1S0@ z^_;6uJ}vuJFZbAjjC&VEn2CpzJljP&iotEq$^ME9(OrM|o@4Dcl{_#bll zwb2WxurltY>RBD3qD~MDPchH~@dML>Z{H}$#gL}%!iSQ~9*sjLO*gw5!E7?Uco`4Sr4YU-TVOU5d6((iv& zOIJ_nf0kO4SM~%pwGpkf`nfuV(;Ek`fs8L7Ee2FK=wNYAA%F*QA^LW~%8c*U`%5dM zq&EFI1%kGIHxdQqhp!7X_$gXAyB8XG(%&A$8ghWe*PtbXC&DgDal5tgR+d6Nv1XG> z&Eb_s6^mC~2EsQ;uwf=kWzn353yqaZ^+722fau#7{%0(LsvTlFFz*Hz}; zTJFav-T0yP(NvZDnAIzN)=d>pU{-{Y(2o+;d?&LtX)hSWievc@9n#fX674SZ^ark+ zj|v%aF2H4LO5f8fQ*XNaHxYK=9I0o`2(|=5k}BKdHWEW;cfB=Q&@cwaRT$jZ063UJ zUMb=-0fYs6oBH)w$DzH>W=7ps?i9}NhgK_z8R5+XpmC`%5cv_;+yk9ica@eihkd z4x$%EGt@vVST|Ui00|KI1D=)b{4l|>>)jx=suIg_Y4lJwnwVp}D$uWw*(0$(<=v&+_$q+C zfB#u-O4sU=`!OXY`&DQW$K_zAy>N?U%!nE=Eq}0*$aPZS}F!H6z?ASMw?B~sGCHrBWD+;K89pQ}& z$uE6*z9cSN8FHy|{nSa>4pK&Y1olWUos|9&bfa$?|1mM9z0CZ4FMfYKgRisW14JkE z8I+=_nXY5jwUy-S=J{YmOvvv{@y|W<6J!%AY2_~7g&Q}V_STj3FqW2I|mCWBQdC(8=tQC3EdH>`RB0E z2SWe6js3rIYQP+9THrhv8XJldmU_;E<4`CbMI;my262!vZ@-Q_0!}|Dh-)#F(f@Yr zKbr(rp8xPiyZ|(yOXhr=HhVHalCMMW5_zdxrvZ9{A87 z+pc)5=6HTCkJ2a1Eqk5vUcU1F`Rt(rP)JcpP+%hHWA!bzYgptnd42L&7zX@oNwE9l zMOh=vU=lE$X@4;)k0YWVys;j5WL5y+J)xy3A);Diq)@~9`G>oHhMd~H%$@F~#5l)C zy_MQ6L?F(@U|?uiGL%td5Bb0#hA$$g6_{;3V$t0r5CSBhmy_!2&mQ9S8Wr9FB}WJ= z%k}j(!0r#{m2Q+3w3#w>Gfm$r!%`OVinOo_QZe12 zQ7Uxpg^Y)h+Qrf4K$7Q+fEa=Srh-l1FSMu^=E^v2L)oDiZE>9H!PnWC{h1-RkSA|v z@w~#Rj!rPADZkQ{vyd0?E?Lf)vm<_3>AfjQj{t77Ix{EeoG&=2>Jlye2J>702b;@Wk3}xwq(k;f4c^gl6o>WLoO+aaKweI?v406?7+&aib|m zf_6}8#xUq!lidhhGN8Zo^WB2DUJZ`wXjqS-ar zYJu~Iz+D*HS4jQAfa4nyvRD=9DHrnN0XMIh6>}vDS>rnZR3oEXFk>XCD<}8Hd&F^YN91MS z&sS$j;dcCx9Z1LXn*h54mBQqG*puN*Z=(32{vC!llYCFkiwMnlbHzeSQgp}`6v{$g zlSVgK&EBq-$d}N=oe-@0OEg7FA^}%gJMkuHQ%<0RKfhUi0o8wq4az=Bj*bfR zt`_>bFr7w^1|P!s&>CSQlY`%3?;QnC;T0H_aZ)T_s}|yH216HeQS4aL zZ2AFddfLWR7Xx>DYts9N_~$dArnuGSg`}&wrrBOAZ_(d*YoQqW;vBaIUb99DbqUv& ziG^^7-w$iY{}D!_#!6&aNIW^G8!geeVhgrpUPIc4&O)Wrl8u@gS~C@3 zag#5Rj}NEg{MR5J$t4g8g}KO^&q+Mi8WY*BL@K11;ZU4j#1s5O*Wy<)xb&+_x4H0V z4lgX>cV3iWT8ZPgEX~(1MB~?#vH5$NM)pQmnB%)PZZ&>FBH&UYmmH|Q{}Z94D%UsB zuo76y5iks1o1HVzI&X2Z4n({Mz)rzL-#6OvE+TiB8R}m(E~B#84U*GnPadGPI?p}ZiF%?LF&MT8jH`J$8*w77hK%y>g^L@(;a81h+) z`4rU2#DnofeJFE?=v{0L>n{o5SsE?Ip!`T;F4gbPebyeRDM|VWn-7LpzPq+EZIe4A zR*}4KcBkU~_eczQ`T951bd`*@8TORdEzKXB$k@6|g3j*bx&t^&VflBoNVYGa;ex!W zSNGA*z!RDdK@Am(tuYqtjsM575}>a^!JL60&N-OMO7ycwgSLP3^^VhNzOIQha_nAMA59TT9y4c1N8t*GW657m z%CUbb>FaVjHQgb`E^YT0RYF~LZ0QDT`fX>4*OuK|BdXPK+whZs@)~7RC?n+p1)ht) za5)@EW69|M&eaa>aCyETf_`o{y}v)Hl2mCOIi+Z4$B6V^{s@XTg<^**59;;n{TN`p zyl(Se`#FrW5vCN z(jNDCNImEpAJd)(Oz*2W9Nr;Xv?0^Z@pbw6{Tlgu@D$fUpmTBRtG+ufilGxp>lQmz z6D|?=F5uE*;~>QxFEy7J0vW4+2kljlZJL~`pIM!*#O|_`!j@gcgv7>cptqPd_{?dTX$}YVS@=Y28Jdj?#$71vU%}e1H*?=q7 zt!shXbn1V`7j*=yk8#t>)rrKtf(;ls4_GYy(7F^V?|$Z}f;Jfe1LjUNT^(oFfVLYU z7BDmv6zN-P>4>=4WHzs6XeWz1jSj$k^uda;ZOLvdVp&Z%zN;_L03~_o5HkO!tvusp zl2K^t&Ds?Jj_3+J)&0VFbg2{t-CzmJn1-CHOvn@Or3}AHpo^M5zoEe5@u9jZ4QH_< zXc=uyCq}XnZRqCn@o>38&G@|$#OCxqjf$gYvb}1RRvPu5^cZ;MdO4;#r$`xS#74SOcrZ_4 z+!Vn`*?o7QFrr`|4)4(~w3Rdz^r{<|_UBpE?+D@t3Sa|Tvz*=sg?>(O_hN#W^uv?? z353uAn9+)iGm@IbXpPn;r$6`j>OP0_e_vv zqk7DSZHc76T@Ry-Fi@ptckBI6atvnDacv<0pTepMMn(+eV_y@ujc1IVHzxK@auqzT z-DqQc9d<+_p>5Tjvye2eiXwgRHfMXAZziV%lWJ+HsoGOG{4h5ILj@ZC8)OY7OyZK8 zDB+iSI!_vCq#vQO4_-L34^ocI<&yLTUdP2TV5^RHwT@c6OBY<_rP)t+6mu1grTqpLHxe6BHaIP{~S3^dGl zg|EUEe?cQvuLI(V{xhF9e0DM4{dwtGKT0>6krN$34ck=cZxs52^ z)--f%+IrT!?xO;Bc;(mbn$=a&w`pA=r6HaO60NS4yec^$8Oj4exzRyc{!1ePd{Rcm zG-g(Wk}%|vJv|kmO8O#sxh%?itz))hcPjT7zL%6 zM7n>LI%~bG)c4aFcinmjq0 zKm(VTkXGrkm1XI1Mhb5{E#ovgCk%dY3L3S1fdm+kn4bYFFIlUW5?iT#xT@BuvxPi~-f%{I&A@mHKDS%TU59&Fy{MUaO^(Ra zuq1f3S*oPwOvaP#YJUc;_Q?!5WcW0G&hGH#N`-b$vc=*e&M08KQ9gV^y+^E&Idf`> zN35fWzRXPh^t;wveR!_4r-7-C*}+Ni`N9XXt~}dTK_1u2c)3QVashV<0CW3t!9S~9 zx@^Mo4x1K!HMl$M+Ax%X))XZI4XDig~7VDpt`KQv6##a4H6C#L!1*V@>tHG;bk3Y-p zOJh6SX4u7tnbdO-WZD>IY0VxLnv;tu71vg-J%1qyevjmLRb+tbVc-?r9#_Cn27>98 zf7gW*1X>)1?w^g*3*^2M`Qr<3=x=Paagp$1UhOufd;uaO(--IwCUKj=t!d;){qMHh zk_GR#QOXN}2c<}{&f{?T?~+hzSVFq8Zw#LZj=v*)_U-T66?th8jes5b_Kt7}iS7z7 z4D(aY_(Xwg*ym(ebW$rZvdt~2$f3gJZM9QM3SpAhh9uA;4sP+qy`>4e(N)e}xa{}h z-!&HZ)d1MnoP1dm$#B;<8@uur*}1c7XuOZHG08ErJp*tvyVnfqc4YkHT}~rEd{p=5 z7Ir^=sJzWTLJ6y6kR1XlH+P<4{v<|85%^&*cbU%2pSZa4m+?WpNPP86w558bns3^R zy9l-pBJ)4jHqL{f`i{`?oPzC9TDM4kL^@+*oB*+cNGw)#=kUe!)vsS*zpP6 z7c|WrIP+y2EPr?Y{#|T7F|kz5&i^L;D)Jxo_znf6P&U?2X)m_@qZ76Zi>l|q5`u#bgY>_#$bks1S(i&H5 zkr10Pwp5HLQs`$~P%-BJ68 z|GrEiK01}nX1F2nksjsL9FTDzaa&K=%-JPCm9tDzGAh8>wj*(i3i4^_WEGax6_cJY zYojIoN}bYAb&zN}_iz60^l&Dz2oOR_8)}nIm)@^B*48Xp9i@q*%CR;PL zc2@10m(aJ;!o*0T_}o5PdAUY3C>Ik8R#Q35xw||-K=fU`>)Xafj^FMQ_4I7ULu|#9 z6Re%FrB_AIoEi;>{~IbGkaDH1rXsP>iRREz8d7tjIMX~&lg{+sjSaG}1K753Q0aJx zwWPzo*?YU_Ind_pAd-C8qi5cujm55*y`T}oCU6!F{Hdj@`)=DLzFY$D3!YGh;u>IB z*0VYui-%dmQtgt9MZhdkW&4`?!Kk}ni~Y-XbU427q^Dh|94w{|Ry3*g;vtO)JK}m$cl14Ye zq^aaIMgn-2dI#IR2w< zJwmLSx&O(TvTr zY2RL~EEQC(MKu)lATAv&JuRQN8ZwDfU=DFi;Cg>M4`x!t!H~fG6SvM-6o*rQpxERg zC2!C~lgI(nk;NJE7z{HR4uY+M0YnyZCRh&=JQ7CH$Z`AgctPOV2>%W?v5f|y8y)=K zhsKN`AfzaE-7p^NXQW7`PcO!Uo{3$DhiYzX@_|TAM6bAdQs<&rG<_5qC_SZkh{q-*X22dM>_T!ZT z+awG>tmzbX!@I{7C;1Y4Y0BSGno?_=b|inA;dInA30?933^CBG&Dib;`*L5XtzkcM zkjs0pl=urEYW!pT(XF|ki{-m-2vt>Q{%F{8xWYJg&EP0x^CwKtDX5rvrK2@eeQ(@y z#O(=)qJ0Nsacp$w3^b+>0_3XHB+QCavAtzu$|8I$+->8u;z|>IhiuL_QO#E6s#PaC z(kDyL;OFAGKqB1PF(>J0)SBsqB?s`RBz4iOa@X)&R4acQ!V3>|sPiOd>541Vsz3_N zBWwiyxlgkR;VTG&bYdTyIgHRO!b9yx`Bb$l?z9WXV5?jr!qy|n1+Z2fdKdp#r?H$N za#qGdIgQHi5 zh}#Ccn1S1*BQRpo8_!F&864-Av-qf`tN z>QUfyS<^wCnj?Vx11zP1b9)?t;BkYB*!Y2wvVs6Jlvh|m6wLdZ5sY)r{$BM@W$V`p zaiF$Lpp3N(1A#S2E>Hg4cyW8(?;krB9ph=!kBme10&}z&eVujL^%?X+>36NOF`bpy ze4*W+7@ZRzw8$C_IUbZe+cQNSH-n1REBy4gC#uv?)&QJyfQ?4Yex6By=w&3Aa)7mK zC?*3|JfTzH1XZYSOd7og?5t_uSdQ$U{&M6nop!!z7ivo*-OPct4TWSbqx}j6c8`$s zJ}Mdt0ms5mSZN^)=~PPecDE7t`kWc?!U^lV8QY?P>o5LcxlZ~EXYpTxG1vYHT*vh>+i zwNY!wLQ`NR;QXk8M%a$Ps?f5dx%1z(*`{Xj7ZsY);CtrMk)KY3kn!;wgk$hws|e~Ph;klB05!!m zEXA|4EY#1phhXpKeTl;1%|G$m8}8)3!RW(}>ge53@lHfaQGu8BGnS2VQ8w>dWqebF zFQZfo0wdDCJJMk!rgIR(XB?pvoY6euznq4j&}GE~hyMk7z$z|yV5>EfC@ZAsAch*F zge~A+Pi<46pr8|Ph`Pcm?jU>2Bg7MTKyZQlSj*(~uGnJt`}k6$!WbzZkz$roi<8kV z#HLk%V7|U<`yg;~Nj8wd5}rB6#=Ti%HuBUE*<)8n4Xst3I2#S;XjUgI&Cwn_+~oCI d?Snx)G9knOZ*2$=SU6d@S>Y%sB$OoK{x60_J8S>| diff --git a/1/GBD/assignments/inyeccion-sql.tex b/1/GBD/assignments/inyeccion-sql.tex index 344c65c..2396204 100644 --- a/1/GBD/assignments/inyeccion-sql.tex +++ b/1/GBD/assignments/inyeccion-sql.tex @@ -18,16 +18,76 @@ Es un ataque común en sistemas web que hacen uso de una base de datos, y especialmente cuando permiten interacción (indirecta) entre el usuario y la base de datos (e.g.\ formularios de entrada). -\section{Implementación} -\subsection{Peticiones SQL Erróneas} +\section{Peticiones SQL Erróneas} Cuando se escribe una petición SQL, se hace combinando en una misma sentencia -los datos y los comandos. +los datos y los comandos. A menudo, cuando se crean aplicaciones que interactuan +con una base de datos, las entradas de los formularios se insertan +\textit{verbatim} en la petición SQL. Cuando ocurre esto, un mal actor puede +aprovecharse para inyectar un carácter de escape, y luego correr los comandos +que quiera (i.e.\ ejecución de código arbitrario). -\subsection{Inyección SQL Ciega} -\subsection{Inyección SQL De Segundo Orden} +Por ejemplo, imaginemos un comando SQL que busque si existe un determinado +usuario (asumimos que \texttt{PASSWD()} hace el \textit{hash}): -\section{Consecuencias} +\begin{verbatim} +SELECT * FROM Users WHERE + username="nortega" AND password=PASSWD("MyPasswd"); +\end{verbatim} -\section{Soluciones} +Esto, normalmente sólo escogería la entrada del usuario \textit{nortega}, y sus +datos. Mas, si uno quisiera conseguir todos los datos de todos los usuarios, +podría insertar en el formulario de usuario: \texttt{nortega"\ OR 1=1; --}. Al +hacer esto, el comando terminaría siendo: + +\begin{verbatim} +SELECT * FROM Users WHERE + username="nortega" OR 1=1; + -- AND password=PASSWD("MyPasswd"); +\end{verbatim} + +Por lo tanto, la contraseña quedaría ignorada (como comentario), y como la +condición \texttt{1=1} siempre es verdad, terminaría por devolver todas las +entradas de la tabla \texttt{Users}. + +Para evitar esto, se pueden user ciertas funciones en lenguajes como PHP (e.g. +\texttt{mysqli\_escape\_string()}) para \textit{escapar} aquellos caracteres que +puedan usarse para hacer este tipo de inyecciones (e.g.\ añadiendo un +\texttt{\textbackslash} antes del carácter para escapar el \textit{string}). +Entonces el comando pasaría a ser lo siguiente: + +\begin{verbatim} +SELECT * FROM Users WHERE + username="nortega\" OR 1=1; --" + AND password=PASSWD("MyPasswd"); +\end{verbatim} + +\section{Inyección SQL Ciega} +Similarmente al caso anterior, la inyección ciega ocurre cuando la página o +aplicación no muestra directamente la información de la base de datos, pero sí +se mostraría de manera diferente cuando se cumple una condición. Por ejemplo, +con el mismo código del caso anterior, si suponemos que el código se ejecuta en +un formulario de \textit{login}, si el número de entradas es igual a 1, entonces +acepta entrada en la cuenta. En cuyo caso, con añadir la condición +\texttt{LIMIT 1}, ya entraría en la primera cuenta que encuentra (que +normalmente es la cuenta del administrador). + +\begin{verbatim} +SELECT * FROM Users WHERE + username="nortega" OR 1=1 LIMIT 1; + -- AND password=PASSWD("MyPasswd"); +\end{verbatim} + +Esto se evita de la misma manera que en la sección anterior. + +\section{Inyección SQL De Segundo Orden} +Supongamos que todos los formularios vienen con salvaguardas para evitar las +inyecciones SQL. Aún así, es posible implementar un ataque más sutil que no +afecte inmediatamente la base de datos, sino que lo afecte luego. En estos +casos, la SQL del formulario se ejecuta correctamente, guardando el código SQL +inyectado apropiadamente como un dato, para que luego sea usado y ejecutado +erróneamente como código SQL. De este modo, podríamos decir que los casos +anteriores eran inyecciones de primer nivel, ya que se ejecutaban inmediatamente +del formulario, mientras que las inyecciones de segundo nivel son aquellos que +se ejecutarán más tarde. \end{document}