일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- bootstrap
- 웹개발
- MongoDB
- materialize
- 자바기초
- Express
- nodeJS
- 그래프
- 뷰
- 워게임추천
- wargame.kr
- GIT
- 포렌식워게임
- 웹해킹기초
- 자바
- 써니나타스
- mongoose
- 이진트리
- node
- 웹기초
- 워게임
- gitbash
- 이진탐색트리
- 자바문제풀이
- 웹해킹
- node.js
- 자료구조
- CTF
- NavBar
- 포렌식
- Today
- Total
보안 전공생의 공부
[Wargame.kr] md5 password 본문
페이지 소스코드를 확인해보았다
처음 문제화면에 주어져 있는
md5('value', true)가 눈에 띈다 !
value가 입력받는 변수 ps로 되어있다.
md5 함수는
string md5 ( string $str , [bool $raw_output] ) 구조를 갖는다.
첫번째 인자는 문자열,
두번째 인자는 해싱 결과를 바이너리 형식의 문자열이다.
이 값이 true 일 경우 해시의 길이 16바이너리 형식으로 반환, 이값을 생략하면 기본값은 false 를 갖는다.
16진수 32글자로된 md5 해시값의 문자열을 반환한다.(출처: http://b.redinfo.co.kr/62 )
md5('admin') -> 21232f297a57a5a743894a0e4a801fc3 해쉬값 반환(32자리의 16진수 값 반환)
md5('admin',true) -> 위의 해쉬값을 바이너리 형식으로 반환(16자리의 바이너리 형식 반환)
(출처: bbolmin.tistory.com/77 )
이러한 md5함수를 이용해 sql injection에 사용한다.
1' or '1 쿼리문이 나오게 해서 공격을 하는 것이다.
129581926211651571912466741651878684928 는 md5 hash를 하면
06da5430449f8f6f23dfc1276f722738 이다.
이것이 raw 형태의 쿼리로 들어가면 ?T0D??o#??'or'8.N=? 이다. 'or' 가 적용되며 공격에 성공하게 된다.
<<참고하기 좋은 사이트 !!>>
cvk.posthaven.com/sql-injection-with-raw-md5-hashes
129581926211651571912466741651878684928 을 입력하였다.
md5 해쉬를 이용한 sql injection에 성공하게 되어
바로 키값을 얻을 수 있었다 !
한 달 전에 엄청 고민하다가 해결을 못해서 묵혀둔 문제인데
오랜만에 다시 꺼내보니 짱쉽다 ...
그동안 딱히 뭘 더 공부한 건 아닌데 말이다 ..ㅎ
'Wargame > web' 카테고리의 다른 글
[SuNiNaTaS] #3 (0) | 2021.02.25 |
---|---|
[Wargame.kr] type confusion (0) | 2021.02.25 |
[Wargame.kr] #3 QR CODE PUZZLE (0) | 2021.02.02 |
[Wargame.kr] #2 flee button (0) | 2021.02.02 |
[Wargame.kr] #1 already got (0) | 2021.02.02 |