write-up(web)/los

[LOS] skeleton

문제 https://los.rubiya.kr/chall/skeleton_a857a5ab24431d6fb4a00577dac0f39c.php https://los.rubiya.kr/chall/skeleton_a857a5ab24431d6fb4a00577dac0f39c.php los.rubiya.kr 문제풀이 id가 admin일 때 문제가 해결된다. pw 파라미터 뒤가 false로 고정되어 있어서 주석 처리를 해주어야 한다. -- 뒤는 꼭 %20(공백)처리나 문자가 있어야 한다. select id from prob_skeleton where id='guest' and pw='' || id='admin' -- ' and 1=0 select id from prob_skeleton where id='guest' an..

write-up(web)/los 2023.01.22

[LOS] vampire

문제 https://los.rubiya.kr/chall/vampire_e3f1ef853da067db37f342f3a1881156.php https://xss-game.appspot.com/level6 Oops! Based on your browser cookies it seems like you haven't passed the previous level of the game. Please go back to the previous level and complete the challenge. xss-game.appspot.com 문제풀이 id 파라미터에서 admin을 공백으로 치환한다. 문자열 adadminmin, admiadminn 등을 통해 문자열 admin을 입력할 수 있다. 이를 통해 id 파라미..

write-up(web)/los 2023.01.22

[LOS] orge

문제 https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php los.rubiya.kr 문제풀이 첫번째 쿼리문에서 id=admin의 pw를 알아낸 후, pw 파라미터에 전달하면 두번째 쿼리문에 전달되어 문제가 해결된다. blind injection 수행 시, or는 ||, and는 %26으로 우회할 수 있다. - pw 길이 select id from prob_orge where id='guest' and pw=''||id='admin'%26%26length(pw)>1 -- ' select id from prob_o..

write-up(web)/los 2023.01.22

[LOS] wolfman

문제 https://los.rubiya.kr/chall/wolfman_4fdc56b75971e41981e3d1e2fbe9b7f7.php https://los.rubiya.kr/chall/wolfman_4fdc56b75971e41981e3d1e2fbe9b7f7.php los.rubiya.kr 문제풀이 쿼리문은 pw 파라미터를 받아 id를 반환하는데 이 때, id가 admin일 때 문제가 해결된다. 소스코드를 보면 공백이 필터링 되는 것을 확인할 수 있다. 공백을 사용하지 않고 마지막 따옴표를 이용하여 아래와 같이 문제를 해결할 수 있다. select id from prob_wolfman where id='guest' and pw='1'||id='admin'";

write-up(web)/los 2023.01.22

[LOS] orc

문제 https://los.rubiya.kr/chall/orc_60e5b360f95c1f9688e4f3a86c5dd494.php https://los.rubiya.kr/chall/orc_60e5b360f95c1f9688e4f3a86c5dd494.php los.rubiya.kr 문제풀이 첫번째 쿼리문에서 pw 파라미터를 통해 계정이 존재하는지 확인한다. 두번째 쿼리문 반환값의 pw와 pw 파라미터가 동일한지 확인하고, 동일하면 문제가 해결된다. 첫번째 쿼리문에서 blind injection을 시도하여 pw를 알아낼 수 있다. 아래 쿼리문을 통해 비밀번호 길이와 문자열을 추측할 수 있다. select id from prob_orc where id='admin' and pw=''||1=1 -- ''"; - p..

write-up(web)/los 2023.01.21

[LOS] goblin

문제 https://los.rubiya.kr/chall/goblin_e5afb87a6716708e3af46a849517afdc.php https://los.rubiya.kr/chall/goblin_e5afb87a6716708e3af46a849517afdc.php los.rubiya.kr 문제풀이 쿼리문에서 admin 계정을 반환하면 문제가 해결된다. $query = "select id from prob_goblin where id='guest' and no={$_GET[no]}"; 필터링 문자들을 피해 16진수를 사용해 문제를 해결할 수 있다. if(preg_match('/prob|_|\.|\(\)/i', $_GET[no])) exit("No Hack ~_~"); if(preg_match('/\'|\"|..

write-up(web)/los 2023.01.21

[LOS] gremlin

문제 https://los.rubiya.kr/chall/gremlin_280c5552de8b681110e9287421b834fd.php https://los.rubiya.kr/chall/gremlin_280c5552de8b681110e9287421b834fd.php los.rubiya.kr 문제풀이 id, pw 값이 쿼리문에 들어가며, 이를 실행했을 때 값이 존재하면 문제가 해결된다. 입력되는 파라미터는 문자열로 입력된다. id 파라미터에서 주석을 이용하거나 pw 파라미터 뒤에서 조건 참을 만들어 문제를 해결할 수 있다.

write-up(web)/los 2023.01.21