sql
-
LOS - 8 (troll) Write Up (preg_match와 i의 관계)CTF/Web 2020. 3. 16. 20:40
이번엔 대놓고 admin으로 접속하라면서 admin 문자를 필터링 해주었다. 그래서 Admin을 입력하였다. ! 여기서 잠깐 이 문제의 네이밍 센스가 보이는 문제였다. 왜 일까? 사실 우리는 다른 문제에서 많이 접했듯이 단어 필터링을 많이 보았을 것이다. 보통 replace 함수 같은 경우는 워낙 우회방법이 많아서 사용을 잘 안하지만 preg_match는 정말 많이 쓰인다. 그리고 보통 단어 우회를 하면 대문자도 막힌다. 그러나 여기서 대문자가 막히지 않은 이유는 가장 마지막에 붙혀주는 'i'라는 문구가 없어서이다. 'i'를 통해 대소문자 구분없이 막아줄수가 있는데 마치 트롤을 한듯이 실수로 적지 않은 컨셉 같아 보인다.
-
LOS - 7 (orge) Write Up (blind sql injection)CTF/Web 2020. 3. 15. 20:32
앞에서 or 과 and가 필터링이 되었으며 밑에서 ($result['pw'] == $_GET['pw']) 로직이 구현되어 있어서 pw를 통한 우회가 불가능하다. 그래서 blind sql이 되는지 확인 후 blind sql을 진행하였다. ?pw=' || '1'='1 을 쿼리로 입력하면 라고 뜬다. 여기서 중요한 점은 id가 'geust'로 고정이 되어있음으로 id='admin'을 추가해 주어야한다. import requests url = "https://los.rubiya.kr/chall/orc_60e5b360f95c1f9688e4f3a86c5dd494.php?" headers = {"cookie":"PHPSESSID=1231312312"} l = 0 for i in range(1,15): query = ..
-
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 - 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