티스토리 뷰
serialization 문제를 풀어보자.
guest/guest로 로그인이 가능하다고 한다.
autologin 기능도 있다.
guest는 접근이 안된다고 한다.
위에서 부터 소스를 보면
$_SESSION['login']이 설정되어 있지 않으면 값을 빈칸으로 준다.
그리고 조건문이 post방식으로 login과 password를 주면 $data변수의 login에 들어가고
password는 sha256 hash값이 들어간다.
아니면 else if문으로 $_COOKIE['autologin'] 값이 있으면
$_COOKIE['autologin']값을 unserialize해 $data에 저장한다.
=>그 전에 autologin을 한적이 있으면 id와 password가 serialize된 값으로 저장되어 있으니 그걸 변조하면 되겠다.
라고 생각했다.
계속 보면
다시 조건문으로 unserialize된 password 값이 $auth[$data['login']]과 같으면
$_SESSION['login'] = $data['login']
이라고 한다.
그럼 지금 cookie값에 설정되어 있는 값은 guest/guest가 serialize 된 값과
세션값으로 $data['login']이 되어 있다는 것이다.
세션값이 superadmin이면 되니까 $data['password']==$auth[$data['login']]만 만족하면
되겠다.라고 생각했다.
정리해 보면 세션값을 superlogin으로 설정하기 위해 쿠키의 autologin값을 변조해 $data['password']==$auth[$data['login']]을 만족시키면 된다.
guest/guest로 로그인했을 때 쿠키값은 url encoding되어 있으니 풀어서 보면
a:2:{s:5:"login";s:5:"guest";s:8:"password";s:64:"84983c60f7daadc1cb8698621f802c0d9f9a3c3c295c810748fb048115c186ec";}
이렇게 되어 있다. login : guest password : hash('sha256',guest)
1.login : superadmin
2.password : hash('sha256',$data['login']=superadmin)
2번을 왜 저렇게 하냐면 guest/guest로 로그인할 때 쿠키값인
hash('sha256',guest)와 $auth[$data['login']]이 같아서 로그인에 성공했기 때문에
superadmin도 하면 된다고 생각했다.
해보자.
이 값을 url 인코딩 해 쿠키값에 넣어보자.
안된다..
$auth가 내가 생각한 방법이 아닌 것 같다.
다른 방법은
== type juggling을 이용하는 방법이다.
==는 string 타입과 Boolean True를 비교하면 True를 리턴하는 취약점이다.
그럼
이걸 url encoding해 넣어주면 되겠다.
내가 하고싶었던 serialization 문제와는 좀 달라서 기운 빠졌다.
'web wargame > root-me.org' 카테고리의 다른 글
root-me CRLF (0) | 2021.01.07 |
---|---|
XSS - stored1 (0) | 2021.01.05 |
[root-me] path traversal (0) | 2020.09.22 |
http improper redirect (0) | 2020.09.21 |
http verb tampering (0) | 2020.09.21 |
- Total
- Today
- Yesterday
- automotive
- CAN-FD
- PCA
- Python
- AVTP
- SOME/IP
- AVB
- SVM
- 로지스틱회귀
- one-to-many
- AE
- Ethernet
- json2html
- cuckoo
- problem statement
- 차량용 이더넷
- many-to-many
- 케라스
- 단순선형회귀
- 차량 네트워크
- 머신러닝
- 크로스 엔트로피
- porks
- 딥러닝
- automotive ethernet
- 회귀
- HTML
- many-to-one
- 이상탐지
- 논문 잘 쓰는법
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |