![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc3gosM%2FbtrbYtRMEve%2FQVcwTcgmNVZGxLB5KY396k%2Fimg.png)
id와 pw에 각각 필터링이 걸려 있다. id='\' and pw='or 1=1 #' 처럼 쿼리를 만들면 항상 참인 쿼리가 되므로, id에는 \를, pw에는 or 1=1 #을 넣어주었다. Clear!
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcjGz0s%2Fbtrb2bvLYRZ%2FyuzahJF2hP8OPeLqQW4We1%2Fimg.png)
http://natas25.natas.labs.overthewire.org/index.php natas25/GHF6X7YwACaYYssHVY05cFq83hRktl4c로 로그인 긴 인용문이 있고, 언어를 선택할 수 있게 되어있다. 소스코드를 살펴보았다. natas25 language View sourcecode setLanguage() 함수로 lang 매개변수를 통해 사용자 입력을 받고 있다. safeinclude() 함수는 filename에서 ../를 제거하며, strstr() 함수를 통해 filename에 natas_webpass가 포함되어 있으면 종료한다. logRequest() 함수를 통해 session_id 로그 파일을 열게 되는데, 이 부분으로 패스워드를 알아낼 수 있다. f12를 눌러 PHPS..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6ysLK%2Fbtra9XlY0RQ%2FVMG4TcYlFCrhIkqBlj4Bt1%2Fimg.png)
싱글쿼터(')가 필터링된다. like를 이용할 때는 mysql에서 문자열 검색 시 사용하는 %를 이용해 문자열을 알아낼 수 있다. a% : a로 시작하는 문자열 %a% : a를 포함하는 문자열 %a : a로 끝나는 문자열 a_ : a로 시작하는 두 글자의 문자열 파이썬으로 자동화 코드를 작성했다. import requests pw='' for i in range(99) : for j in range(ord('0'),ord('z')) : URL='http://los.rubiya.kr/assassin_14a1fd552c61c60f034879e5d4171373.php' query={'pw': str(pw)+chr(j)+'%'} headers = {'Content-Type': 'application/json; ..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdAxtAY%2FbtrblllgLi6%2Fs6bOVYTaeSywaQOk9hH4KK%2Fimg.png)
http://natas24.natas.labs.overthewire.org/index.php natas24/OsRmXFguozKpTZZ5X14zNO43379LZveg로 로그인 전 단계와 마찬가지로 패스워드를 입력하는 창이 있다. 소스코드를 살펴보았다. natas24 Password: View sourcecode strcmp 함수를 이용해 문자열을 비교하고 있다. !strcmp이 참이 되려면 0이 되도록 해야 한다. strcmp 함수는 원래 비교하는 문자열이 서로 같아야 0을 반환하지만, 배열과 비교하게 되면 무조건 0을 반환한다. 따라서 다음과 같이 입력해주었다. Warning과 함께 natas25의 패스워드가 출력된다. Password: GHF6X7YwACaYYssHVY05cFq83hRktl4c