본문 바로가기

웹해킹

(116)
DVWA JavaScript(medium) 롸업 구성 창은 low레벨과 똑같다. success를 입력하면 invalid token이라고 뜨는 것도 똑같다. 코드에는 두개의 파일이 있는데 low레벨과는 아예 다른것 같다. php 파일은 그냥 js 파일을 불러오는 거 같고 js 파일에서 token을 검사하는 거 같다. js 파일을 분석해보면, token값은 phrase에 입력된 값을 이용해 만드는 것 같다. do_something 함수의 동작 과정을 보면, 그냥 인자로 받은 문자열을 역순으로 뒤집어서 반환한다. token 값 검사 과정을 보면 do_something 함수 안에 인자로 e+phrase값+XX인데 개발자 도구로 보면 현재 토큰이 XXeMegnahCXX이다. 즉, XX+phrase+XX를 뒤집으면 토큰이 된다. 그래서 토큰 value를 XXss..
DVWA CSP Bypass(medium) 롸업 창은 low레벨과 똑같다.
DVWA XSS(Stored)(medium) 롸업 low 레벨과 구성 창은 똑같다.
DVWA XSS(Reflected)(medium) 롸업 창 구성은 low 레벨과 같다.
DVWA XSS(DOM)(medium) 롸업 창 구성은 low레벨과 똑같다.
DVWA Weak Session IDs(medium)롸업 창 구성은 low 레벨과 동일한 것 같다. 구성 코드이다. low 레벨에서는 1씩 증가하는 정수로 세션아이디를 만들었었는데 medium 레벨에서는 time() 함수로 세션아이디를 만들어 준다. 개발자 도구에서 확인해보면 세션아이디 값이 나와있다. 1초마다 Generate를 누르면 값이 1씩 증가하는데 이렇게 세션아이디 값을 간단하게 알아내고 예측할 수 있다.
DVWA Blind SQL Injection(medium) Blind SQL Injection도 마찬가지로 low레벨에서랑 다르게 직접 입력하는게 아니라 선택하는 걸로 바뀌어있다. 과정 자체는 low 레벨에서 했던 것과 동일하다. 직접 입력할 수 없으니 burp suite로 요청을 변조해서 같은 명령어를 보내기만 하면 된다. 오히려 low레벨에서는 '로 정확한 구문을 예상해서 공격문을 만들어야 했는데 이건 그냥 burp suite에서 바꿔주면 되서 더 쉬운거 같기도 하다. 아무튼 먼저 column 개수부터 알아보겠다. id=1 union select 1,2# 이렇게 요청을 변조해서 보내면 참이 반환되고 column 개수가 2개인 것을 알아낼 수 있다. 이제 데이터베이스 이름을 알아낼 것이다. id=1 and length(database())=4# 먼저 이름의 길..
DVWA SQL Injection(medium) 롸업 userid를 직접 입력하는게 아니라 선택하는 걸로 바뀌었다. 구성 코드이다. post 요청으로 값을 받고 mysqli_real_escape_string 함수를 이용해 입력이 그대로 sql구문으로 사용되지 않게 하고 있다. burp suite로 패킷을 보면 id=1&Submit=Submit 이런식으로 전송이 된다. 이 요청을 이렇게 바꿔서 전송해보면 injection을 성공했다.