write-up(web)
[Webhacking.kr] Challenge old-23 write-up
문제 화면입니다. 문제를 풀려면 를 삽입해야 합니다. 문자를 넣으면 url로 전달되며 html소스에도 추가가 됩니다. 2개 이상의 연속된 영문자는 필터링합니다. 그래서 의미 없는 문자인 null 문자(%00)를 섞어 주어야 합니다. null문자를 중간에 넣으니 2개의 영문자가 잘 들어갑니다. 이제 사이에 null 문자를 다 넣어주면 됩니다. 끝!
[Webhacking.kr] Challenge old-58 write-up
문제 화면입니다. 콘솔 창을 주고 flag를 획득하라는 문제입니다. flag를 입력하니 권한이 없다고 나옵니다. burp suite를 통해 요청을 하나씩 뜯어 보겠습니다. cmd 옆에 guest로 명시되어 있는 부분을 admin으로 변경 시켜서 전송합니다. 변조 후 전송하면 플래그가 나옵니다. 끝!
[Webhacking.kr] Challenge RPG1 write-up
문제 화면입니다. 강을 건너 보물을 얻으면 성공입니다. 강을 건너려고하면 막히는 모습입니다. json 파일을 우선 찾아보겠습니다. 개발자 도구의 네트워크 탭에 있는 json 파일을 다 확인한 결과 Map001.json 안에 data라는 항목이 가장 만만해보였습니다. 이제 이 json 파일 안에 있는 데이터를 가지고 있는 변수를 찾아야 합니다. map을 치니 우연치 않게 자동완성으로 $dataMap이라는 항목을 발견하게 되었습니다. $dataMap의 프로퍼티 중 data를 보면 배열로 저장되어 있습니다. 어떤 의미인지 몰라서 일단 0을 다 넣어줘보겠습니다. 0으로 바꿔주니 움직일 수가 없습니다. 그렇다면 100정도를 줘보면 어떨까 싶어서 새로고침해서 초기화를 시켜준 뒤 100을 줘봤습니다. data 값을 ..
[Webhacking.kr] Challenge g00gle2 write-up
문제 화면입니다. 플래그가 a1셀에 ? 문자로 필터링되어 적혀있습니다. 플래그를 알기 위해선 필터링되기 전의 값을 찾아줘야 합니다. 이 때 찾아줘야 할 것이 json response 입니다. (json에 대해선 시간 날 때 정리해두겠습니다..) 버프 스위트를 활용해서 json 파일을 찾아줍시다. 먼저 프록시의 options 탭에서 설정을 해줘야 합니다. 위 사진과 같이 룰을 추가해줍니다. 그런 다음 intercept 탭에서 브라우저를 열어서 페이지 요청을 보냅니다. history 탭에서 response를 확인해보면 여러가지 파일들이 있는데 타입이 json인 녀석들을 하나씩 보면서 flag를 검색해주면 됩니다. 하나씩 찾다보니 플래그를 찾았습니다. 끝!
[Webhacking.kr] Challenge old-46 write-up
문제 화면입니다. 문제의 소스 코드입니다. addslashes 함수로 ', ", \, null 문자에는 \가 붙어서 일반 문자로 바꿔버립니다. 추가로 str_replace 함수로 공백, /, *, % 문자는 null로 치환됩니다. 마지막으로 select, 0x, limit, cash 문자에 대한 필터링이 걸려있습니다. lv를 입력하면 각 lv에 해당하는 id 값과 cash 값이 나옵니다. lv 5부터는 id가 없습니다. 이는 admin은 lv 값을 가지고 있지 않다는 의미입니다. 즉, lv 조건이 아닌 id 조건을 사용해야 합니다. 그래서 lv에는 0을 넣어주고 id=admin 조건을 or로 연결해주면 됩니다. 싱글 쿼터를 사용할 수 없으므로 mysql의 char 함수를 통해서 admin을 id에 넣어주..