Web Hacking 65

[bWAPP(비박스)] SQL Injection (GET/Select)

비박스의 SQL Injection (GET/Search)와 비슷한 방법으로 풀어볼 것이다. [난이도 : low] 페이지 구조를 먼저 살펴보자. 메뉴에서 영화를 하나 고르고 Go 버튼을 누르면 해당 제목의 영화에 대한 정보를 보여주고 있다. (GET/Search)와 다르게 입력하는 부분이 없고 정보도 한 줄밖에 나오지 않는다. GET 메소드를 사용하고 있기 때문에 파라미터 값이 URL에 노출될 것이다. URL을 잘 살펴보자. movie=1, action=go 두 개의 파라미터가 들어간다. 페이지 동작 부분을 확인하자. movie의 값에 따라 영화가 출력되는 것을 확인할 수 있다. movie=3으로 바꾸면 3번째에 해당하는 영화가 출력된다. 따라서 우리가 변조할 파라미터는 movie 값이다. SQL Inje..

Web Hacking/BWAPP 2023.03.08

[Webhacking.kr] old-11 / Challenge 11

소스코드 무슨 문젠가 했더니 정규표현식 문제라고 한다. 1) [1-3] : 1~3 문자 중에 하나 2) [a-f] : a~f 문자 중에 하나 3) {5} : 앞의 문자를 5번 반복 4) _ : _ 6) * : 문자 0번 이상 반복 7) \t : %09 (URL 인코딩) $_SERVER[REMOTE_ADDR]은 ip 주소다. 대충 다음과 같은 형태가 된다. 3eeeee_본인ip주소%09p%09a%09s%09s 이것을 val에 집어넣으면 된다. ?val=3eeeee_본인ip주소%09p%09a%09s%09s 해결!

[Webhacking.kr] old-38 / Challenge 38

LOG Injection은 처음 들어본다. 뭔지 잠깐 찾아봤다. https://lads.tistory.com/28 위 블로그에서 든 예제가 아마 이 문제 같은데, 요약하자면 개행문자를 삽입해 접속하지 않은 접속 로그를 만드는 것이다. 당연하게 admin을 입력하면 로그인이 안된다. 처음 페이지로 돌아가 소스코드를 확인해보면 admin page가 있다는 것을 알 수 있다. 현재는 index.php에 있는데 admin.php로 접속해봤다. 그러면 접속 로그를 볼 수 있는데 ip와 입력한 내용이 들어있다. 다시 index.php로 돌아가서 공격을 시도해보자. 로그가 아래로 쌓이기 때문에 CR-LF 인젝션을 시도할 수 있다. https://owasp.org/www-community/vulnerabilities/..

[Webhakcing.kr] old-32 / Challenge 32

들어가면 랭킹이 보인다. 유저 이름을 클릭하면 투표가 되는데, 한번 더 클릭하면 이미 투표했다고 투표가 되지 않는다. 쿠키값을 확인해보면 투표여부를 체크하는 쿠키값이 있다. 이 값을 삭제하고 투표하면 다시 투표가 가능하다. 소스코드를 확인해 파라미터로 ?hit=닉네임을 보내면 투표가 되는 것을 확인했다. 자기 닉네임을 100번 투표하면 해결이 되는 것 같다. 자동화 스크립트를 이용하면 되겠다 생각했는데 쿠키값을 매번 삭제할 수가 있나 싶었다. 근데 그냥 쿠키값을 하나만 보내면 되는 것 같아 바로 짜봤다. import requests url = "https://webhacking.kr/challenge/code-5/?hit=닉네임" cookies = {'PHPSESSID': '세션값'} for i in r..