Waiting answers
web-ssrf 문제 base64 질문

안녕하세요. 마지막에 플래그 획득에서 질문이 있습니다. 아래코드와 같이 img 값이 출력되는데 base64.b64encode(data).decode("utf8") 올바르게 익스플로잇을 했을 때 data에 flag.txt가 담겨져 있고, data가 base64 방식으로 encoding이 되고 utf8로 방식으로 decoding이 되어져 있는걸로 해석했습니다. 그렇다면 플래그 원본을 얻기 위해서는 utf8방식으로 인코딩을 하고 base64방식으로 디코딩을 해야하지 않나요? img value를 utf8로 디코딩하니까 바로 flag가 뜨는데 이해가 안돼서 여쭤봅니다.

2022.11.06. 21:11

잘 모르겠습니다..

RPO의 개념을 클라이언트와 서버의 상대경로 해석이 달라서 발생하는것으로 이해했습니다. index.php에서 filter.js를 불러오고 있을 때 -> 클라이언트 : /index.php/static/ -> 서버 : index.php -> index.php 안에 있는 filter.js 는 /static/filter.js로 불러와짐 그런데 문제에서는 filter.js 가 불러와지지 않습니다.. 무엇을 잘못한걸까요?

2022.11.23. 17:26

힌트좀 주시면 감사하겠습니다.

취약점을 찾았는데 PIE 보호기법 때문에 이도저도 못하는 상황입니다.

2022.11.26. 23:36

힌트 부탁드립니다.

config 부분은 앞의 질문들을 찾아보아 command의 결과는 true가 나왔습니다. (save 는 60 0 으로 set 완료) url 에 http://host3.dreamhack.games:포트번호/data/webshell.php?cmd=echo ls -l; 을 입력하여 config set 한 파일 이름(webshell.php)이 있는 것을 확인했습니다. 그 후, echo 뒤 file webshell.php 으로 Redis RDB file이라 바이너리 파일인 것을 확인 후, xxd 명령어로 xxd webshell.php 을 하면 flag 부분이 나올 거라 생각했지만 나오지 않아 방향을 찾지 못하고 있습니다. 힌트 알려주시면 감사하겠습니다. (인라인 코드 형식은 양 옆에 백틱이 질문 형식때문에 바뀐 거라고 생각해 주세요.)

2022.11.28. 10:59

%09로 공백 우회 되는 거 맞나요..??

강의에 나온 익스플로잇 코드 curl "http://host1.dreamhack.games:10137/?uid='Union%09Select%09null,upw,null%09From%09user%09where%09uid=\"Admin\"%23" 에서 저 쿼리 부분 그러니까 'Union%09Select%09null,upw,null%09From%09user%09where%09uid=\"Admin\"%23 만 붙여 넣어서 해봤는데 계속 500 에러가 나길래 우선 공백 우회가 되는지 먼저 테스트 하고 싶어서 '%09Union(Select%09'a','b','c');-- 를 입력했습니다 그러니까 쿼리문이 SELECT * FROM user WHERE uid=''%09Union(Select%09'a','b','c');--' 이렇게 되게요 만약에 우회가 되는 거면 정상 실행되었을텐데 그렇지 않고 계속 Internal Server Error 가 발생합니다 혹시 해서 mysql 에 똑같은 db 만들어서 저 쿼리문을 실행했더니 역시 오류가 나면서 안되고, 반대로 %09만 다시 공백으로 바꾸고 SELECT * FROM user WHERE uid='' Union(Select 'a','b','c');--' 해봤더니 정상 실행 됩니다 궁금한걸 요약해서 말씀드리자면 아직 mysql에서 %09로 공백 우회 되는 거 맞는 건가요? 혹시 최근에 우회가 안되게 막혔다던가 하는 업데이트가 있었나요? 답변해주시면 감사드리겠습니다 ㅠㅠ

Return to Shellcode 를 할때 스택에서 쉘코드 실행

Return to Shellcode를 하면 스택에 쉘코드를 넣고 버퍼의 주소로 ret 를 덮어서 스택에 저장된 쉘코드가 실행되는 기법인데, 여기서 페이로드는 쉘코드 + 나머지버퍼(더미)+ sfp + ret(버퍼의주소)가 되는데 궁금한게 쉘코드만 실행되는 이유는 뭔가요? 더미값은 인식이 안되는건가요? 아니면 스택에서 실행되게 되면 커널이 인식해서 명령어인 옵코드만 인식돼서 실행되는건가요? 구글링을 해도 키워드를 모르니 검색이 어렵네요..

2022.11.28. 22:17

주소와 포맷스트링의 순서에 따라 결과가 다르게 나옵니다

payload = b'%105c%7$hhn' + b'%29c%8$hhnAAA' + p32(printgot) + p32(printgot+1) payload = p32(printgot) + p32(printgot+1) + b'%97c%1$hhn' + b'%29c%2$hhn' (1번)포맷스트링 + 주소의 경우에는 seg fault가 발생하고 (2번)주소 + 포맷스트링의 경우에는 print_got의 하위 2바이트가 정상적으로 덮어씌워졌습니다. 왜 동일한 코드(제가 생각하기에는요)인데 결과가 다르게 나오는지 궁금합니다.

2022.11.29. 00:16

There are 27 Courses.
1/4 page