이전 글은 여기다가 냅두고 http://blog.c2w2m2.com 으로 블로그 이전합니당..
http://tech.c2w2m2.com/web/js-trick/ 글올렸다. 아직 추가중이다. 그리고 http://file.c2w2m2.com/ 요거 만들었다 ㅋㅋ 굿굿 그리고 해캠 시텦 1등했다 라업 나중에 안귀찮으면 올리겟다,,,
Unsorted bin attack이 가능하고, 전역변수로 힙이 관리되면서, 이를 수정할수 있고, 전역변수의 주소를 알수 있다. 대충 이런 조건이면 Unsorted bin attack만을 활용해서 쉘을 얻어낼 수 있다. 힙베릭, 립베릭, 빈베릭 ( If PIE )가 필요하긴한데, 위 조건을 만족하면 view만 있으면 다 릭할 수 있으니까 크게 상관 없다. 빈베릭이 걸리기는 하지만... 어쨋든 이런 조건이면 전역변수에다가 Unsorted bin attack 으로 main_arena + 88 을 적어준다. 보통 Unsorted bin attack이후의 malloc은 main_arena가 꼬이면서 에러를 뱉는데, 여기서 Edit을 통해서 main_arena를 고쳐줄 수 있다. 이를 고치면서, 뒷부분에는 one..
만약 Injection 벡터가 select * from post order by $_GET['input'] 꼴로 일어나면 $_GET['input'] 에다가 바로 sub query 를 넣고 error & blind 혹은 time based sqli 가 가능하다. => (select if(1=1, (select 1 union select 2), 0)) 꼴로 하면 조건이 true가 되면 에러가 터지게 되어서, 이걸로 blind가 가능하다. 물론 union 이 아닌 row가 2개이상 나오는 query를 줘도 된다. 하지만 select * from post order by idx $_GET['input'] 꼴로 일어나서 input에 desc 같은게 들어간다고 하면 select * from post order by..
문제푸는데 쓸일이 있어서 만들었따
off by one 으로 인해서 heap_amount부분에 할당이 된다. 이걸로 적당히 조져서 unsafe unlink해주고 적당히 쉘따면 된다.
힙오버 있으니까 그걸로 릭하고덮어서 aaw 만들고그걸로 fucntion ptr 덮고nx없으니 쉘코드 올리면 된다.옵셋 대충짠건지 한방에는 잘 안따인다 여러번 해야할듯
전에 풀어야지 올려놓고 글도 써놓고 까먹고 있다가 이제와서 푼다. 문제보면 message 부분에서 bof를 준다. 막 A넣어보면, fmt.padString부분에서 에러가 난다. ida로 까서 스택보면 stdin부분이 덮히는 걸 볼 수 있다. 이부분을 맞춰주면 되는데, printf가 2번 호출됨으로, 2개 맞춰주면 된다. 그 후에는 걍 c바이너리 rop하듯 rop 해주면 되는데, 왜인지 모르겠지만 syscall이후에 체이닝이 정상적으로 안됐다. 그래서 read => execve는 포기하고, mov [rdi], rax를 이용해서 /bin/sh를 쓰고, 쉘을 땄다.
퍼블 몇개 먹어서 기분 좋다 (grin) xoxopwn 걍 길이제한만 있는 pyjail이였다. 필터링도 없었다. 보고 5분컷내서 퍼블먹었는데, 그다음팀이 푸는데 3시간걸려서 기분이 좋았다. 그냥 open(__file__).read() 하면 파일 읽어올 수 있고, o함수 분석해서 디코드 해주면 플래그가 나온다 dead_note_lv1 OOB로 got를 덮고, 원하는 3byte opcode를 실행 할 수 있었다. atoi를 jmp rdi로 덮으면, 인풋으로 뛰게 되어서, 인풋에 있는 opcode를 다시 실행시킬 수 있었다. 이러면 16byte니까 간단하게 read를 하는 syscall을 부르고, 쉘코드 적어서 뛰어주면 된다. unexploitable 웹너블이다. 퍼블먹었당. 웹에서는 크게는 취약점 없고 그냥..