| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 뷰
- nodeJS
- gitbash
- wargame.kr
- 자바문제풀이
- GIT
- 써니나타스
- 자바
- 웹해킹기초
- 포렌식워게임
- 그래프
- mongoose
- 이진탐색트리
- 웹개발
- 포렌식
- Express
- 자료구조
- 자바기초
- 웹해킹
- 이진트리
- node
- MongoDB
- CTF
- 워게임추천
- NavBar
- materialize
- 웹기초
- 워게임
- node.js
- bootstrap
- Today
- Total
보안 전공생의 공부
[XCZ.kr] #32 Easy Trick | PHP 비교 연산자 취약점 본문

php 트릭을 이용하라는 점을 기억해야한다 !!


각 링크를 클릭해보면 prob page는 얻을 정보가 없다.
source page를 들어가보면 조건문이 있다.
입력받은 변수 a값이 12735366333132132465461????????????????????????????? 과 일치하면 key값이 나온다,
php 트릭을 이용하라한 점을 되새기며
이것저것 취약점을 찾아보았다.
urlencode 함수의 취약점은 딱히 검색되는게 없었고,
== 취약점을 검색해보니 엄청난 정보들이 검색되었다 !!
그래서 이 취약점에 대해 더 찾아보기로 하였다.

비교연산자 ==은 왼쪽과 오른쪽의 값이 같을 때에만 true라는 결과가 나오는데
17자리를 넘는 두 수를 비교할 때에는 미세한 값의 차이가 있어도 같은 값이라고 인식한다.
999999999999000000000 == 999999999999000111111
(참조 : blog.naver.com/withrubiya/70175920455 )

?를 1로 바꿔 입력해주면

$a == 1273536633313213246546111111111111111111111111111111 이고,
if문의 1273536633313213246546111111111111111111111111111111 ==12735366333132132465461?????????????????????????????는 true가 된다.
그래서 Key값이 출력된다.

키값을 입력하면 성공한다.

'Wargame > web' 카테고리의 다른 글
| [Wargame.kr] #2 flee button (0) | 2021.02.02 |
|---|---|
| [Wargame.kr] #1 already got (0) | 2021.02.02 |
| [SuNiNaTaS] #5 | 자바스크립트 난독화 (0) | 2021.01.26 |
| [SuNiNaTaS] #6 (0) | 2021.01.20 |
| [SuNiNaTaS] #2 (0) | 2021.01.20 |