root-me File upload - MIME type

2018. 1. 15. 02:13

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

root-me SQL Truncation

2018. 1. 15. 02:10

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

root-me SQL injection - numeric

2018. 1. 15. 01:36

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.


webhacking.kr 39번 문제다.

점수는 100point.

들어가보면 입력창이 하나 있다.

소스를 보니 id값을 필터링 하고 있다. \\는 별 의미가 없을 것 같고
'가 문제인데 쿼리문보면 '가 앞에 하나밖에없기 때문에 admin'와 같은 형식으로 주게될 경우 '가 2개가 되어서 admin''가 된다.
그다음이 0~15번째까지 끊어버리는데 이걸 활용해 치환되는 ''가 15,16에 위치하면 '가 하나만 남게 만들도록 하면 될 것 같다.

admin         '' 로 입력해줘봤다.

성공!


'Wargame > webhacking.kr' 카테고리의 다른 글

webhacking.kr 41번  (0) 2018.01.15
webhacking.kr 40번  (0) 2018.01.15
webhacking.kr 38번  (0) 2018.01.15
webhacking.kr 37번  (0) 2018.01.15
webhacking.kr 36번  (0) 2018.01.15
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

webhacking.kr 38번 문제다.

점수는 100point.

흠 injection 문제인 것 같다.

이것저것 넣어봤는데 별 반응이 없다.
Admin 버튼을 눌러보니 다음과 같이 IP:입력값 형식으로 로그가 남겨져 있다.

흠 admin을 입력해 봤다.

로그인이 실패한다.

뭔가 저 로그값이 연관이 있을 것 같다.

내가입력했을때 IP:값 형식으로 들어갔으니 IP:admin으로 입력해 봤다.

 

성공!

sql injection 문제라기보단 그냥 눈치껏 푸는 센스문제인것 같다.


'Wargame > webhacking.kr' 카테고리의 다른 글

webhacking.kr 40번  (0) 2018.01.15
webhacking.kr 39번  (0) 2018.01.15
webhacking.kr 37번  (0) 2018.01.15
webhacking.kr 36번  (0) 2018.01.15
webhacking.kr 35번  (0) 2018.01.15
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

webhacking.kr 37번 문제다. 

점수는 250point.

다음과 같이 파일 업로드가 가능하다. 일단 소스부터 확인해보자.

index.phps가 있다. 들어가보자.

소스가 살짝 양이 좀 있다.

먼저 흐름을 보면 time()함수를 통해 시간값을 저장해 이 값을 가지고 tmp/tmp-시간값 형식으로 파일을 만든다. 그 후 파일 안에 127.0.0.1이라는 ip값을 입력한다.
fck부분은 tmp/파일 밑에 파일 개수에 대해 계산을 한다.
다음으로 내가 입력한 파일명에대해 >여러 필터링 작업을 한 후 tmp/파일명 형식으로 파일을 생성하고 내 ip주소 값을 넣는다.
다음으로 scandir을 통해 tmp밑의 파일명들을 배열에 담고 전부 출력한다.

그 후 $ck에 파일 내부에 있는 첫번째 라인의 문자열인 127.0.01을 저장한다.

다음으로 $request에는 소켓통신에 필요한 값들이 들어가는데 이떄 Host: $ck에 127.0.0.1 값이 들어가게 된다. 그리고 이 ip주소로 7777번 포트로 소켓 연결을 시도한다.

뒤부분에 파일개수가 30개가 넘어가면 초기화를 하는데 이는 크게 중요한 작업은 아니다.

그렇다면 우리가 할 일은 127.0.0.1로 된 부분을 내 공인ip로 바뀔 수 있도록 하면 된다.

현재 새로고침을 할때마다 tmp-time()값인 파일이 생성되고 그 파일의 내부에 있는 ip인 127.0.0.1로 소켓 연결이 시도되고 있다. 그렇다면 이 time()값을 몇십초 정도후에 실행될 값으로 지정한 후 그 시간에 딱 업로드가 된다면 time()으로 인해 생성된 값이 그 후에 생기는 같은 이름의 파일인 내가 업로드한 파일로 인해 오버라이트 되면서 내 아이피 값이 $ck에 저장되게 될 것이다.

대충 보면 조금 헷갈릴 수 있지만 천천히 분석하시면서 보면 크게 어렵지 않을거라 생각한다.

그럼이제 실제로 동작을 하는지 실행해보자.
burp suit Repeater 기능으로 열심히 아직 발생되지 않은 시간값을 보내봤다.

 

외부에서 7777포트로 들어와야 되므로 칼리의 사설ip로 포트를 열어줬다. ( 우리집은 외부 포트포워딩이 안되는 공유기라 DMZ기능을 켰다.)

대기하고 있던 칼리쪽으로 키 값을 쏴준다.

성공!


'Wargame > webhacking.kr' 카테고리의 다른 글

webhacking.kr 39번  (0) 2018.01.15
webhacking.kr 38번  (0) 2018.01.15
webhacking.kr 36번  (0) 2018.01.15
webhacking.kr 35번  (0) 2018.01.15
webhacking.kr 34번  (0) 2018.01.14
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

webhacking.kr 36번 문제다.

점수는 200point.

뭐가 없고 다음과 같은 화면이 다다.

이 문제같은 경우 vi편집기에 swp파일 생성되는 취약점을 위한 문제인 것 같다. 
vi 편집기같은 경우 파일작성중이거나 비정상 종료시 .파일명.확장자명.swp 같은 형식으로 숨김파일이 작성되고 내부내용을 어느정도 볼 수 가 있다.

이 취약점을 활용하면 현재 .index.php.swp 파일이 존재하고 여기로 접속하면 될 것 같다.

근데 접속이 안된다. 여기서 엄청 헤맸는데 알고보니 사이트 공사하면서 뭔가 문제가 생겨 제대로 동작하지 않는 문제인 것 같다. 또 안되는거가지고 시간 엄청 날렸다 ㅠ


'Wargame > webhacking.kr' 카테고리의 다른 글

webhacking.kr 38번  (0) 2018.01.15
webhacking.kr 37번  (0) 2018.01.15
webhacking.kr 35번  (0) 2018.01.15
webhacking.kr 34번  (0) 2018.01.14
webhacking.kr 33번  (0) 2018.01.14
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

webhacking.kr 35번 문제다. 

점수는 350point.

전화번호 입력창이 있고 소스가 있다.

소스를 확인해보니 일단 필터링이 되고있다. 쿼리문 파괴하는것 자체는 별로 어렵지 않아보인다. admin 사용자에 내 ip값만 id,ip값에 넣어주면 될 것 같다.

대충 123),('admin','x2x.xxx.xxx.xxx',1234 와 같이 insert sql injection 해주면 될 것 같다.

에러가 뜬다. 흠...뭐지... 코드상으론 문제가 없다. 아마도 php magic quote 기능때매 '가 자동으로 필터링 되고 있는 것 같다.

char()방식으로 값을 바까서 넣어봤다.

아스키값 구하기 귀찮아서 파이썬으로 대충코드짜서 구해서 대입했다.

 

성공!


'Wargame > webhacking.kr' 카테고리의 다른 글

webhacking.kr 37번  (0) 2018.01.15
webhacking.kr 36번  (0) 2018.01.15
webhacking.kr 34번  (0) 2018.01.14
webhacking.kr 33번  (0) 2018.01.14
webhacking.kr 32번  (0) 2018.01.14
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

root-me SQL Injection - Routed

2018. 1. 15. 01:16

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

root-me SQL injection - Insert

2018. 1. 14. 23:55

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.