web(18)
-
LOS - vampire
예전에 페이스북에서 이거와 비슷한 글을 본 적이 있다. https://www1.president.go.kr/petitions/523225 http막아놔도 hthttptp는 뚫리냐 > 대한민국 청와대 나라를 나라답게, 국민과 함께 갑니다. www1.president.go.kr 같은 원리로 admin 사이에 admin을 넣으면 admin이 없어지면서 admin이 된다, 이게 무슨소리냐 하면 "admadminin" 이렇게 입력하면 가운데 admin이 사라지면서 admin이 된다는 것이다.
2020.05.05 -
LOS - troll
preg_match로 문자열을 비교할때 뒤에 /i 옵션을 넣어주지 않으면 대소문자를 무시하지않고 구별한다. 하지만 mysql은 대소문자를 구별하지 않으니 대소문자를 바꿔 입력해주면 된다.
2020.05.05 -
LOS - wolfman
간단하게 id='guest' and pw='aaa'
2020.05.05 -
LOS-orc
비밀번호를 알아내야하는 문제이다. 로그인은 쉽겠지만 비밀번호를 알아내려면 mysql의 substr을 이용하여 만들어야 할 것 같다. 사실 비밀번호를 알아내려는 문제라는 것 부터 blind sql injection의 스멜이 난다. 비밀번호의 길이를 구하고 substr()을 이용하여 비밀번호를 구하는 파이썬코드를 짜 보았다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 # los orc ( blind sql injection ) import requests url = "https://los.rubiya.kr/chall/orc_60e5b360f95c1f9688e4f3a86c..
2020.05.03 -
LOS-goblin
오늘 삘받아서 몇개 더 써야겠다. 저번문제들에서는 필터링하지 않은 ' " ` 들을 필터링을 해놨다. 어떻게 하면 ' " ` 를 이용하지 않고 mysql에서 문자열을 포현 할 수 있을까? mysql에서는 위와같이 16진수를 이용하여 문자열을 표현할 수 있다. 따라서 쿼리를 다음과 같이 만들면 문제를 해결할 수 있을지도 모른다. select id from prob_goblin where id='guest' and no=1 or id=[admin의 16진수] admin을 16진수로 변환하면 0x61646d696e 자 이제 그럼 ?no=1 or id=0x61646d696e 를 삽입하면 문제해결! 인줄 알았으나 hello guest가 나왔다. 아무래도 id='guest' and no=1 부분이 참이 나온것 같다...
2020.05.02 -
LOS - cobolt
get파라미터의 id,pw를 쿼리에 넣고 id 가 admin일 때 문제가 풀리는 것 같다. 쿼리에는 다음과 같은 패턴이 차단된다. _ , prob , . , () select id from prob_cobolt where id='' and pw=md5('') 사용자의 비밀번호를 저장할때 md5로 단방향 암호화를 이용해 저장하는 것 같다. 일단 위 쿼리를 id가 admin이며 쿼리가 참이 되도록 만들면 select id from prob_cobolt where id='admin' and pw=md5('aaa') or id=('admin') 쿼리가 위와 같이 되도록 만들려면 ?id=admin&pw=aaa') or id=('admin') 이렇게 url에 넣어주면
2020.05.02