gremlin 문제와 유사하지만 id 값이 'admin'이어야 풀리는 문제입니다.



전과 동일한 방법이지만 id는 'admin'으로 하기 위해 admin' or 1=1%23 을 입력해봅니다.

뒤에 md5로 해쉬가 되고 괄호가 있지만 주석으로 인해 무시가 됩니다.


하지만 'admin'으로 Query를 보냈는데도 'rubiya'라는 계정으로 인식이 되었습니다.

'admin'말고 'test', 'abc' 등등 다른 문자열을 입력해도 'rubiya'로 되는 것을 보면 테이블의 혹시 'rubiya'만 있을 것 같다는 생각이 들었습니다.



그래서 union select 를 이용하여 문제를 풀었습니다.


그전에 select 'admin'을 한다면 무엇이 반환 되는지 알아야 합니다.

아래 보시는 것같이 select 하고 뒤에 칼럼명이 아닌 문자열이 온다면 해당 문자열을 반환하게 됩니다.


이것을 이용해서 select 'admin'으로 admin 값을 얻을 수 있습니다.



그럼 테이블에 없을 것 같은 'admin'을 불러오기 위해 union select 'admin'으로 'admin' 값을 획득 할 수 있습니다.


'WarGame > LOS(Lord of SQL)' 카테고리의 다른 글

[LOS] darkelf  (0) 2018.10.05
[LOS] wolfman  (0) 2018.10.05
[LOS] orc  (0) 2018.10.05
[LOS] goblin  (0) 2018.10.05
[LOS] gremlin  (0) 2018.10.05

내용을 보시면 별다른 이야기는 없으며 Query를 보내고 result의 무슨 값이든 하나만 들어있으면 통과하는 문제입니다.


따라서 해당 Query를 언제나 참으로 만드시면 됩니다.


흔히 SQL injection을 배울 때 처음 쓰는 ' or 1=1 을 사용하시면 쉽게 해결 할 수 있습니다.

하지만 id의 값을 넣고 뒤에 pw 또한 검증하니 뒤 부분을 주석 처리해서 없애주시면 됩니다.


처음에 --를 주석으로 이용해서 해봤더니 되지 않습니다.

(다 풀고 안 사실. -- 뒤에 공백이 있어야 주석으로 인식되므로 %20을 추가해야 함)



#으로 주석 처리를 하려고 했는데 왠지 모르게 표시가 되지 않고 문제가 풀리지 않습니다. 

Query에는 이상이 없다고 생각하지만 풀리지 않는군요..



굳이 주석을 이용하지 않아도 id/pw 모두 'or '1'='1 을 입력하시면 해결은 됩니다.

1을 '(SingleQuarter)로 감싸준 이유는 id='{$_GET[id]}소스 코드를 보시면 문자열로 넘어가기 때문에 '(SingleQuarter)로 감싸지기 때문입니다.



문제를 풀고 알아보니 URL에서는 #을 인식하지 못한다고 하네요.

#을 사용하려면 URL인코딩 한 값인 %23을 사용하시면 됩니다.


'WarGame > LOS(Lord of SQL)' 카테고리의 다른 글

[LOS] darkelf  (0) 2018.10.05
[LOS] wolfman  (0) 2018.10.05
[LOS] orc  (0) 2018.10.05
[LOS] goblin  (0) 2018.10.05
[LOS] cobolt  (0) 2018.10.05

https://www.hackthis.co.uk를 하다 보면 프록시 툴을 사용해야 할 경우가 생기는데 오류가 나오면서 잘 되지 않습니다.

http://suninatas.com/main/main.asp 여기는 잘만 되었는데 안되길래 찾아봤더니 인증서 문제였습니다.


기본적으로 Burp suite는 https에서는 사용하지 못합니다.

그래서 인증서를 신뢰할 수 있는 기관으로 등록해 사용하면 됩니다.


http://burp/ 에서 찾으면 된다는 블로그들이 많았는데 저는 안됐습니다 ㅜ..





우선 Burp Suite에 Proxy탭의 Option에서 [Import/export CA certificate]를 하여 인증서를 뽑아내야 합니다.



DER format으로 인증서를 내보냅니다.



인증서의 확장자는 .crt 이므로 다음과 같이 원하는 폴더에 저장하시면 됩니다.





인증서를 다운 받으시고 더블클릭으로 열어보시면 인증서 설치라는 버튼이 있습니다.

해당 버튼으로 간단하게 인증서를 설치 할 수 있습니다.



현재 사용자로 해도 되는데 그냥 컴퓨터 자체에 설정해주려고 로컬로 합니다.




[신뢰할 수 있는 루트 인증 기관]에 등록을 해야 정상적으로 작동이 됩니다.





인터넷 속성 → 내용 탭 → 인증서 → [신뢰할 수 있는 루트 인증 기관] 탭

을 보시면 방금 설치한 인증서가 있습니다.



이제 HTTPS에서도 프록시가 잘 됩니다. ^_______^


몇몇 문제 풀때 미리 알았으면 좋았을 것을...

+ Recent posts