SQL Injection
-
[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 한 글자씩 알아내기 ?..
-
[LOS] goblinWargame/Lord of SQLInjection 2019. 7. 4. 23:15
[goblin] https://los.rubiya.kr/chall/goblin_e5afb87a6716708e3af46a849517afdc.php preg_match함수에 의해 '와 "가 필터링되어 있으며, 쿼리문에 id 값은 guest로 설정되어 있지만 id가 admin이어야 문제가 풀린다. select id from prob_goblin where id='guest' and no=guest의 no가 아닌 수 or id='admin' 우선 guest의 no가 아닌 값을 알아보았다. guest의 no는 1이다. id=admin을 입력하기 위해서, '나 "를 사용하지 않고, 문자열로 입력하기 위해서는 char, hex, binary를 사용할 수 있다. 1. ?no=2 or id=char(97,100,109,..