분류 전체보기77 [LOS]darkelf or과 and를 우회해봅시다. ||와 &&로요. ?pw=1' || id='admin'%23 2020. 2. 11. [LOS]wolfman 띄어쓰기를 막아놨습니다. id를 admin으로 변경하면 될 것 같은데.. 띄어쓰기를 %09 (tab)으로 우회해서 풀어보겠습니다. ?pw=1'%09or%09id='admin'%23 2020. 2. 11. [LOS]orc id는 admin으로 고정되어있고 pw를 맞춰야하네요. blind SQL Injection을 해야할 것 같습니다. 2가지 순서로 작업을 하겠습니다. 1. PW의 길이를 알아내는 것. 2. PW의 길이만큼 여러 문자를 대입하여 값을 찾아내는 것. 값을 찾아내는 원리에는 echo로 출력되는 Hello admin을 통해 알아보겠습니다. 위와 같은 blind SQL Injection 틀을 만들어서 LOS를 푸는데 사용하겠습니다. 이러한 코드로 실행을 시켜보니! 알맞은 pw 길이와 pw의 값이 뜨네요 ?!?!?!? 왜 Clear가 안뜰까요... 혹시 몰라서 대문자 A를 소문자 a로 바꿔보았습니다. 2020. 2. 9. [LOS]goblin ', "을 막아놨습니다. 그리고 받는것도 no로 받네요 그럼 no=1을 주고 or을 사용해서 id=admin을 이용해보겠습니다. 그리고 따옴표는 %27로 우회해보겠습니다. 우회를 시도했는데 안되네요.. 그냥 admin을 넣어도 안되니 이걸 16진수로 변환해서 넣어보겠습니다. admin의 16진수 값은 다음과 같습니다. (ascii) 값을 제대로 넣었는데 왜 guest가 뜰까요... no을 한번 바꿔보겠습니다. 2020. 2. 9. [LOS]cobolt pw가 md5로 되있네요.. 근데 이것도 id만 admin이면 풀리는것 같아요. 앞에서 풀었던 방법으로 해결해보겠습니다. 2020. 2. 9. [LOS]gremlin 이렇게 되어 있습니다. id를 admin으로 만들면 풀리는 문제 같습니다. id와 pw를 GET을 통해 입력받는데 id는 admin으로, 그리고 그 뒤는 주석 #으로 처리해보겠습니다. 2020. 2. 9. [LOB]nightmare argv를 통해 인자를 전달받는 것이 아니네요. fgets를 한번만 사용하니 cat을 통해 payload를 작성하면 될거같고... buffer+47 값이 0xbf, 0x08이면 안된다네요... 스택, 바이너리 영역 모두 사용할 수 없습니다. 또 leave, ret를 체크하는 구문도 있네요... fgets안에 stdin이 취약점이 있다고 합니다. (몰라서 여기저기 검색해봤습니다.ㅠㅠ) stdin을 사용할 시 그 안에 임시 buffer가 존재하는데 그 buffer는 스택영역이 아닌 bss영역이라네요! 이 영역에 진짜 값이 존재하는지 확인해보았습니다. stdin의 주소를 알아온 후 break point를 걸어 값을 넣어봤습니다. 그리고 stdin의 값을 보니 실제로 값이 그대로 남아있는 것을 확인했습니다.! .. 2020. 2. 7. [LOB]succubus Return Address가 무조건 strcpy의 주소여야하네요.. 그리고 buffer+ 48부터 A로 4byte를 채웁니다... 근데 우리가 사용하는 함수가 strcpy, 복사를 해주는 함수입니다. payload는 대충 이렇게 작성하면 될 것 같습니다. ./nightmare + "\x90"*44 + &strcpy + dummy[4] + (strcpy 첫번째 인자) + (strcpy 두번째 인자) + (strcpy 세번째 인자) 여기서 strcpy의 첫번째 인자는 strcpy가 호출 후 돌아갈 Return Address, 여기서는 dummy[4]가 들어있는 주소를 넣어주고 strcpy의 두번째 인자는 Shellcode가 존재하는 곳의 주소를 넣어주면 됩니다. 마지막으로 strcpy의 세번째 인자는 She.. 2020. 2. 7. [LOB]zombie_assassin RTL이 안되구요...argv[44:48]이 무조건 D0의 주소여야 합니다. D0 -> GYE -> GUL -> YUT -> M0 순으로 올라가는 것 같습니다... RTL Chaining 방법을 이용해서 적용을 해보면! 일단 각각 함수들의 주소를 구해보겠습니다. 구한 함수들의 주소를 순서대로 삽입하니까 이런 결과가 뜹니다. char* cmd 안에 쓰레기 값이 들어가서 실행이 잘 안되는 것 같습니다.. cmd 값을 /bin/sh로 채워줘야하는데 마지막 MO의 주소 + (4byte dummy : Return Address) + argv address + /bin/sh\x00 으로 채워보겠습니다. core dumped가 발생했으니 실제로 /bin/sh이 존재하는 위치를 찾아보겠습니다. /bin/sh 2F 62.. 2020. 2. 7. 이전 1 2 3 4 5 6 7 ··· 9 다음