목록전체 글 (370)
cgy12306
소스코드를 보면 _ . ( ) 문자를 필터링하고, or and substr = 도 필터링을 한다. =는 like로 우회가 가능하다. 또 substr은 mid, left, rignt 함수로 우회가 가능하다. 우선 패스워드의 길이를 먼저 알아내 보자. https://los.eagle-jump.org/golem_39f3348098ccda1e71a4650f40caa037.php?pw=' %7c%7c id like 'admin' %26%26 length%28pw%29 like '8 위 처럼 입력을 하게 되면 Hello admin을 볼 수 있다. 비밀번호는 8글자이다. 우리는 참이면 Hello admin이 뜨는 것을 알 수 있으니 blind sql injection을 사용할 수 있다. import requests ..
pw로 인자를 받아오지만 select 쿼리문 뒤에 and 1=0이 있어서 pw가 정상적으로 들어가도 거짓으로 판단한다. 그러면 pw를 적어주고 뒤에 부분을 주석처리 하면 될듯하다. 주의할 점은 주석뒤에는 공백이 있어야 한다. --만 넣어주게 되면 '(작은따옴표)랑 바로 붙어서 --' 라는 문자가 완성 된다. 또한, URL 맨 뒤에 공백(스페이스바)을 넣어도 무시하기 때문에 %20으로 넣어주면 된다. https://los.eagle-jump.org/skeleton_8d9cbfe1efbd44cfbbdc63fa605e5f1b.php?pw=' or id='admin'--%20
str_replace는 문자열을 대체하는 함수이다. admin이라는 글자가 있으면 공백으로 대체하라는 코드이다. 그러면 admin 사이에 admin을 넣어주게 되면 admin은 공백처리 돼서 사라지고 다시 admin이 나타나게 될것이다. https://los.eagle-jump.org/vampire_0538b0259b6680c1ca4631a388177ed4.php?id=adadminmin 또한 str_ireplace는 대, 소문자를 구분하지만 str_replace는 대,소문자를 구분한다. 그래서 ADMIN이라는 글자를 넣어도 될것이다. https://los.eagle-jump.org/vampire_0538b0259b6680c1ca4631a388177ed4.php?id=ADMIN
'(작은따옴표), "(큰따옴표)가 필터링 되어 있다. ereg 함수는 해당하는 문자열이 있으면 참이나 거짓을 반환하는 함수이다. admin이 ereg 걸려있으면 exit()를 호출하게된다. eregi는 대, 소문자를 구분하지 않지만 ereg는 대, 소문자를 구분한다. 그래서 admin이 아닌 ADMIN으로 바꾸면 뚫릴것이다. https://los.eagle-jump.org/troll_6d1f080fa30a07dbaf7342285ba0e158.php?id=ADMIN
or와 and를 사용하지 못하는 blind sql injection 문제인듯 하다. https://los.eagle-jump.org/orge_40d2b61f694f72448be9c97d1cea2480.php?pw=' union select 'admin 이렇게 입력을 해주면 Hello admin이 출력이 된다. union select로 변조한 값은 id라는 것을 알 수 있다. (이럴 필요 없었다) or은 ||으로 필터링을 우회할 수 있고, and는 &&로 필터링을 우회할 수 있다. || = %7c%7c && = %26%26 &는 GET 방식으로 데이터를 넘겨줄 때 사용하므로 %26으로 필터링 해줘야 한다. https://los.eagle-jump.org/orge_40d2b61f694f72448be9c97d..
or과 and를 막아놨다. union select를 이용해서 테이블 값을 변조할 수 있다. union select는 앞에서 select로 뽑아낸 테이블의 값을 union select 뒤에 나온 값을 대입할 수 있게 된다. https://los.eagle-jump.org/darkelf_6e50323a0bfccc2f3daf4df731651f75.php?pw=' union select 'admin 이렇게 입력을 해주게 되면 pw값이 원래는 비어 있지만 union select로 admin이 들어가게 된다.
코드를 보니 스페이스바(%20)를 쓸 수 없다고 한다. 그러면 탭(%09) 문자를 쓰자 ㅋㅋ https://los.eagle-jump.org/wolfman_f14e72f8d97e3cb7b8fe02bef1590757.php?pw='%09or%09id='admin Clear
입력받은 pw로 prob_orc 테이블에 저장된 pw와 비교를 해서 맞으면 풀리는 문제이다. Blind sql injection기법을 활용하면 된다. https://los.eagle-jump.org/orc_47190a4d33f675a601f8def32df2583a.php?pw=' or id='admin' and length(pw)='8 length(컬럼명)은 해당 컬럼에 있는 데이터의 길이를 알아내는 명령어이다. length에 1부터 계속 하나씩 늘려가며 대입해보자. pw의 길이는 8글자라는 것을 알아냈다. 파이썬으로 코드를 짜보자. 쿠키값은 F12번을 눌러서 확인 할 수 있다. import requests arry=[] url = "https://los.eagle-jump.org/orc_47190a4d..
https://los.eagle-jump.org/goblin_5559aacf2617d21ebb6efe907b7dded8.php?no=1 no=1을 입력해보자. no=1은 guest 계정이다. 소스 코드를 다시보면 '(작은따옴표), "(큰따옴표), `(역따옴표)를 막아놨다. https://los.eagle-jump.org/goblin_5559aacf2617d21ebb6efe907b7dded8.php?no=1' 를 입력하게 되면 아래와 같은 문구가 뜬다. 그래도 %는 막아놓지 않았기 때문에 URL 인코딩을 이용하면 된다. 공백은 %20이다. 또한 id 값을 넣어주려면 '(작은따옴표)가 필요하지만 hex 값으로 변환해서 넣어주면 된다. https://los.eagle-jump.org/goblin_5559aac..
gremlin과 비슷하지만 pw에 암호화해주는 md5가 걸려있고 조건문에는 id 값이 admin이어야 한다. 일단 값을 입력해보자. https://los.eagle-jump.org/cobolt_ee003e254d2fe4fa6cc9505f89e44620.php?id=1&pw=1 id안에는 1이 들어가고 pw는 md5안에 1이 들어가게 된다. 아무런 필터링 없이 들어가기 때문에 md5를 닫아 주면 될듯 하다. https://los.eagle-jump.org/cobolt_ee003e254d2fe4fa6cc9505f89e44620.php?id=admin&pw=') or ('')=(' id는 admin으로 해주고 pw는 md5를 닫아주고 뒤에 or ('')=('를 넣어준다. 나는 rubity라고 한다. admin..