CTF/Web
-
LOS - 5 (WOLFMAN) Write Up (공백 필터링 우회)CTF/Web 2020. 3. 13. 19:49
이번엔 공백기호가 필터링 되어 있다. %20도 안먹히고 +도 안먹힌다. 하지만 %0A는 먹혔다. linefeed %0A 라고 한다. 라인피드의 기능은 커서를 현재 행의 다음행으로 옮기는 것이다. 그래서 0a를 사용하면 스페이스의 역할을 해주게된다. https://los.rubiya.kr/chall/wolfman_4fdc56b75971e41981e3d1e2fbe9b7f7.php?pw=%27%0aor%0aid=%27admin 라고 쿼리문을 입력하면 성공
-
Los - 4 (orc) Write Up (Blind Sql injection 코딩 방법)CTF/Web 2020. 3. 12. 19:42
Los.4_orc 문제 분석 4번째부터 벌써 난감한 문제가 나왔다. if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orc"); get을 통해 가져온 pw와 sql 결과문에서 나온 pw가 같아야지만 문제가 최종적으로 풀리게 되어 있다. 즉 참, 거짓을 통해 직접적으로 푸는 방식이 아닌 참, 거짓을 통해서 비밀번호를 유추해서 비밀번호를 직접 적어야 하는 문제이다. 이런 문제 유형을 보통 blind sql injection 문제라고 한다. 해결방법은 보통 Python 코드를 작성하는 것이다. Blind sql 사전 지식 이 문제를 풀기 위해서는 기본적으로 length 함수를 사용할 줄 알아야 하며, substr을 사용할 줄 알아야 한다. Lengt..
-
LOS - 3 (goblin) Write UpCTF/Web 2020. 3. 11. 17:39
Los.3_goblin select id from prob_goblin where id='guest' and no= 우선 필터링 되는 부분을 보면 싱글쿼터와 더블쿼터와 역쿼터를 필터링 중인 것을 확인할 수가 있다. id가 'admin'이면 문제는 풀리게 되어 있다. where 절을 보면 guest의 no의 번호를 올바르게 입력하면 "Hello guest"가 나올 것으로 보인다. 한번 guest에 맞는 no을 찾아보자. 사실 찾을 필요는 없다. 그저 이 문구가 나오지 않게 하는 것이 중요하다. 우리는 이제 where id='guest' and no= 절이 거짓이 되도록 만든 후 or 연산을 시작 할 것이다. 우리는 사전에 필터링 문에서 쿼터들이 다 먹혀있는 것을 확인했다. 하지만 no 컬럼은 int형 컬럼..
-
LOS - 2 - (cobolt) Write Up (mysql 주석 사용)CTF/Web 2020. 3. 11. 04:52
Los.2_cobolt Created: Mar 10, 2020 3:21 AM Created By: eild Shin Last Edited By: eild Shin Last Edited Time: Mar 10, 2020 3:34 AM Stakeholders: eild Shin Status: web Type: Lord of SQLInjection select id from prob_cobolt where id='' and pw=md5('') pw를 md5 해쉬로 돌리고 있지만 그냥 주석처리 시켜버려서 무시시키면 된다. id만 admin으로 맞추어 주면 된다. `#은 url에서 사용하는 문구임으로 url인코딩을 사용해준다. id=admin'%23
-
써니나타스 4번문제 Write UpCTF/Web 2019. 8. 9. 14:24
4번문제에선 뜬금없이 User-Agent 를 언급하고있다. 4번까지 풀면서 느낀건 써니타나스는 웹페이지에 주석으로 힌트를 적는 관습이 있다는 것이였다. 그래서 바로 개발자모드를 눌러서 주석을 확인해 보았다. point를 50으로 만들고 SuNiNaTaS라고 왜인지는 모르지만 적혀있다. 누가봐도 50으로 올려야한다. Plus 버튼을 눌러보자 있지도 않은 써니나타스 브라우저를 좋아한다는데 어쩌라는건지 모르겠다. 그래서 나는 웹페이지가 착각하도록 만들어줘야 했다. 버프슈트를 이용하였다. User-Agent 부분을User-Agent : SuNiNaTaS 로 수정 후 forward를 진행하였다. (참고로 토탈을 수정하든 Upgrade-Insecure-Requests 값을 수정하든 뭘하든 1만 올라가게 되어있었다...