티스토리 뷰
1) html injection 시도
위와 같이 id 로 입력한 값을 통하여 인젝션을 시도해 봄
php 코드를 삽입하려 시도했으나, <? 문자에 대한 필터링을 우회 x
소스 코드 아래에 위치한, ?phpinfo=1를 발견하여, 해당 url을 통하여 phpinfo() 출력한 결과를 볼 수 있었음.
또한 로그인 후, ?page= 와 같은 형식으로 page 인자가 존재하는데, 끝 문자가 "say" 가 아닐 때에는 다음과 같은 필터링이 적용됨을 볼 수 있음
phpinfo 를 통하여는, 다음과 같은 정보들을 알 수 있음
위와 같이 현재 위치의 절대 경로를 파악할 수 있다.
2) php wrapper + say 필터링
wrapper 를 이용함과 동시에, %00과 같은 공백 문자를 활용하여 say 문자를 필터링하는 방식으로 /etc/password 파일을 열람하려 했으나, 성공 x
-> php5 이후에는 패치된 취약점이라고 함.
3) session 이용
로그인 후, 위와 같은 세션에 대한 정보를 제거하면 자동으로 로그인 상태가 풀리므로, 세션 페이지를 이용한 공격을 시도해 봄.
session.save_path 의 값이 no value로 설정되어 있으므로, 디폴트 위치인 /tmp에 세션 페이지가 존재함을 예상할 수 있음.
(ubuntu/Debian : /var/lib/php5
centOS : /var/lib/php/session)
(+ php.ini 설정 파일에서도 저장 위치를 확인할 수 있음)
따라서 세션 페이지에 접근하기 위하여, 쿠키 값을 다음과 같이 변경하였다.
page 인자를 통하여 접근하면
위와 같이 계정 정보 id 가 출력됨을 볼 수 있다.
따라서 기존에 html injection을 방식을 통하여는 필터링되었던 <?php 와 같은 키워드를 세션 페이지에 삽입하고, 페이지 값을 가져오는 방식을 생각할 수 있다.
이 때 디렉토리 정보를 확인하기 위하여, shell_exec 함수를 삽입함.
<?php $r=shell_exec("ls"); echo $r; ?>
(php 파일이 아닌 세션 파일이므로, wrapper 사용하지 않아도 됨.)
f14g__NGA 를 열람하여 보면
<?php $r=shell_exec("cat f14g__NGA"); echo $r; ?>
를 이용하여 플래그를 획득 가능함.
'hacking > WEB hacking' 카테고리의 다른 글
xss-2 (0) | 2021.08.19 |
---|---|
tomcat manager (0) | 2021.08.18 |
chall11-chall20 (0) | 2021.08.06 |
OTP(One Time Password) (0) | 2021.08.04 |
chall06-10 (0) | 2021.08.01 |
- Total
- Today
- Yesterday
- 희소 배열
- 최단 거리
- 참조 지역성
- Priority Queue
- 분할 정복
- 위상 정렬
- 누적 합
- HashSet
- MaxHeap
- MinHeap
- Greedy
- 이분탐색
- 비트마스킹
- 완전탐색
- 백트래킹
- Sort
- LowerBound
- 완전 탐색
- RequiredArgsConstructor
- dfs
- prirotyqueue
- dp
- Knapsack
- Segment Tree
- 배낭 문제
- 구간 합
- 분할정복
- 동적계획법
- 부분 합
- 페르마의 정리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |