Wargame
-
[LOS] trollWargame/Lord of SQLInjection 2019. 7. 5. 00:38
[troll] https://los.rubiya.kr/chall/troll_05b5eb65d94daf81c42dd44136cb0063.php 쿼리 결과 값의 id가 admin이어야 문제가 풀리는데, admin과 '를 필터링하고 있다. ' 필터링으로 인해 입력 값이 그대로 문자열로 취급되기 때문에 char, hex, binary 등은 사용할 수 없다. php에서는 'admin'과 'ADMIN'을 다른 값으로 인식한다. 그러나, Database에서는 같은 값으로 인식한다. ?id=ADMIN
-
[LOS] orgeWargame/Lord of SQLInjection 2019. 7. 5. 00:18
[orge] https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php orc 문제와 유사한 문제로, or과 and가 필터링되어 있다. orc 코드에서 or만 ||로 변경하여 pw를 알아보았다. [ 소스 코드 ] #!/usr/bin/env python # -*- coding: utf8 -*- import requests headers = {'Cookie': 'PHPSESSID=dkbulkcv0mngs04ordrl47hgd3;'} url = "https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php" string = "1234567890abcdefghijklmnopqrstu..
-
[LOS] wolfmanWargame/Lord of SQLInjection 2019. 7. 5. 00:02
[wolfman] https://los.rubiya.kr/chall/wolfman_4fdc56b75971e41981e3d1e2fbe9b7f7.php 공백문자가 필터링되어 있고, or을 사용하기 위해서는 공백문자가 무조건 필요하다. 공백문자를 우회하는 문제인 것 같다. [ 공백 우회 ] %0a, %0b, %0c, %0d, %09, /**/, () 공백을 우회하기 위해서 %20 대신 위와 같은 문자를 사용하면 된다. ?pw='%0aor%0aid='admin 또한, or 대신 ||를 사용하면 공백이 필요없다. ?pw='||id='admin
-
[LOS] orcWargame/Lord of SQLInjection 2019. 7. 4. 23:52
[orc] https://los.rubiya.kr/chall/orc_60e5b360f95c1f9688e4f3a86c5dd494.php 쿼리 문이 참일 경우에는 Hello admin을 페이지에 출력해주며, pw 값을 addslashes 함수로 처리한다. 또한 쿼리의 결과 값의 pw와 입력해준 pw 값이 동일해야 한다. [ addslashes(string $str) ] 작은 따옴표와 큰 따옴표, 역슬래쉬 같은 특정 문자 앞에 역 슬래쉬 문자를 붙여주는 함수 db 값으로 입력 시 에러 방지 위해 사용 addslashes 처리되기 때문에 Blind SQL Injection을 이용해 pw의 값을 직접 알아내야한다. 1. pw 길이 알아내기 ?pw=' or length(pw)=n# 2. pw 한 글자씩 알아내기 ?..