write-up(web)
[Webhacking.kr] Challenge old-61 write-up
문제 화면입니다. 문제의 소스 코드입니다. id가 admin이 나오면 문제가 풀립니다. id에는 addslashes 함수가 걸려있고 \ ( ) select form , by . 에 대한 필터링이 걸려있습니다. 마지막으로 15문자를 넘어가게 되면 exit 됩니다. id 값으로 id를 입력해보니 test가 나왔습니다. 조건식을 넣어주면 1과 0으로 값이 나오기 때문에 다른 방법을 사용해야 합니다. mysql에는 고정 값을 출력할 수 있습니다. select '고정값' as 컬럼명 고정값과 컬럼명 모두 임의의 문자나 숫자를 입력할 수 있습니다. 앞에 고정값은 싱글쿼터로 감싸주어야하고 뒤에 컬럼명은 싱글쿼터 없이 작성해도 됩니다. 문제에서 싱글쿼터는 이스케이프 시켜버리므로 16진수를 사용해야 합니다. admin ..
[Webhacking.kr] Challenge old-42 write-up
문제 화면입니다. test.txt 옆에 download를 누르니 이런 파일이 나왔습니다. 아래 flag.docs 옆에 download를 누르니 접근을 거부 당했습니다. 문제의 소스 코드를 확인해줍니다. test.txt의 다운로드 링크를 보니 base64로 인코딩 되어있는 것 같아서 디코딩을 해봅니다. 디코딩 결과 test.txt가 나왔습니다. 이를 통해 flag.docs를 base64로 인코딩해 down 파라미터의 값으로 넣어주면 되겠다는 생각을 하게 됩니다. base64로 인코딩한 값을 url에 넣어주면 파일을 다운 받을 수 있습니다. 파일을 열면 이렇게 플래그가 적혀있습니다. 이를 홈페이지 Auth 탭에 입력해주면 끝!
[Webhacking.kr] Challenge old-39 write-up
문제 화면입니다. 문제의 소스 코드입니다. \\을 공백으로 치환하고 '을 ''으로 치환합니다. 또한 id의 인덱스 번호 0~15까지만 잘라서 가져갑니다. 싱글쿼터가 열려 있으므로 닫아줘야 합니다. 실험적으로 임의의 값 a를 넣고 공백으로 글자를 채운 다음 마지막으로 ' 문자를 써서 추가되는 하나의 싱글쿼터를 사용하지 않도록 하면 문제가 풀립니다..
[Webhacking.kr] Challenge old-05 write-up
문제 화면입니다. Join을 클릭하면 경고 창이 뜨고 들어갈 수 없습니다. login 페이지에 들어가서 sql injection을 걸어보려 했지만 모두 실패했습니다. url을 보면 mem/login.php로 되어 있습니다. 상위 폴더인 mem에 들어가보겠습니다 mem 폴더로 들어가면 join.php 가 있습니다. join.php로 들어가면 경고 창이 뜨고 검은 화면이 뜹니다. 소스 코드를 보니 스크립트 코드가 있습니다. vscode로 가져와보니 난독화가 되어 있습니다. 콘솔에서 해석해줍니다. 해석한 내용을 넣은 js코드입니다. cookie에 oldzombie 라는 값이 있어야하고 url에 mode=1 라는 값이 있어야 합니다. 쿠키에 oldzombie 항목을 생성합니다. 이제 bye 대신 access_d..
[Webhacking.kr] Challenge old-20 write-up
문제 화면입니다. 문제의 소스 코드입니다. 폼 태그 안에 있는 nickname, comment, captcha를 모두 값을 입력해야 하며 특히 captcha는 옆에 나온 값을 그대로 입력해줘야 전송할 수 있습니다. 모두 입력해주고 전송해주니 시간 초과 메시지가 뜹니다. 손으로 작성하는것은 느리므로 파이썬 코드로 작성해줍니다. 그리고 개발자 도구를 확인해보니 쿠키 탭에 st 라는 값이 설정되어 있습니다. 아마 set time의 줄임말인 것 같습니다. php에 time() 함수가 있는데 1970.01.01 00:00:00부터 지금까지 지나온 초를 정수형태로 리턴해주는 함수입니다. 아마 이 함수를 사용해서 설정한 것 같습니다. 새로고침을 해보면 1씩 값이 증가합니다. 파이썬으로 코드를 작성하고 st를 미래의 ..