본문 바로가기

Total52

unbreakable 보호되어 있는 글 입니다. 2018. 2. 5.
[pwnable.kr] cmd1 argv값에 flag, tmp, sh가 들어있나 필터링을 한 후 실행한다. /tmp 생각도 못했었는데... 오....putenv는 환경변수를 추가해주는 거라는데 뭘 어떻게 쓰라는지 모르겠어서 그냥 /bin/cat f*했더니 같은 디렉토리에 f가 들어가는게 flag파일밖에 없어서 그런지 바로 출력됐다. 환경변수를 쓰는 법은 따로 찾아봐야 할 듯.그냥 cat f*하면 찾을 수 없다길래 /bin/cat으로 해줬다. 2018. 1. 29.
Wandere bits write up argv로 입력값을 받으면 wapint 함수에서 연산을 한 후에 16진수 문자열로 반환된다. 처음에는 안에 연산과정을 분석해보려했는데 2진수로 바꾼후 뭘 하는지 잘 모르겠어서 변환값과 입력값이 1대1로 대응되는걸 보고 그냥 변환표를 만드는게 빠를것 같아서 표를 만들기로 했다. 처음에 A로 채워서 넣으면 2진수로 A(65)로 저장되어 있는 걸 보고 A(01000001)가 82(100000010)로 변환되길래 2진수로 바꾼후 뒤집는 줄 알았는데 B에서 바로 막혀버렸다....ㅠ 보수로도 해보고 더하기 빼기도 해봤는데도 규칙을 모르겠.... A는 82로 바뀌는데 마지막 값을 +1 해준다. A ~ Z, a ~ ~, 0 ~ 9를 집어넣어서 compare에 들어가는 값을 보면 표 작성 가능 #A ~ Z check1=.. 2018. 1. 29.
CODEGATE 2017 angrybird write up angr문제고 처음에 cmp eax, 0이랑 main에서 문자열 입력받는 함수 위에 call 세부분 nop로 패치해주면 실행할 때 오류 없이 잘 돌아간다. 패치할 때 n값이 fgets인자로 들어가니까 저부분을 통으로 nop로 패치해버리면 오류가 난다. sub_4006f6의 리턴값은 20h니까 mov n, 20h를 쓰든 mov eax, 20h를 쓰든 꼭 값을 남겨줘야 한다. 비교문이 되게 많은데 마지막에 you typed : 이 부분으로 가는게 목표라 find_address로 0x404fab를 넣어준 다음 angr 코드를 돌리면 키 값이 출력된다. import angr proj = angr.Project("./patched_angrybird", load_options={'auto_load_libs':Fal.. 2018. 1. 29.