classes/Board.class.php 를 보면 GET['col']의 대한 내용을 정규식을 통해 Filter 합니다. 그러나 정규식에서 # 을 막지 않았고 바로 취약점을 찾을 수 있었습니다.



get_search_query 메서드는 3개의 인자를 받아 explode 함수로 | 문자열을 구분자로 배열로 변환 후 $column 배열을 count하여 그 만큼의 SQL을 실행해 주는데, 이때 위와 같이 "컬럼 = 검색할 문자열 연산자" 와 같은 형식으로 $result변수가 선언되어 return 됩니다.


이때 위와 같이 말씀드린것 처럼 column엔 test#%0a1) union ~~~%23 과 같은 형식으로 SQL Injection이 가능하지만 


해당 CMS는 DB와 테이블을 생성할 때 10글자의 문자를 랜덤으로 생성하여 hex값으로 변환 후 테이블 이름앞에 랜덤값을 붙이는데 이 랜덤값은 brute force를 통해 값을 알아낼 수 없기 때문에 다른방법을 찾아보았습니다.


그러던중 해당 cms에 Connect 된 Mysql USER가 root라는걸 알아냈고 그후 mysql DB의 innodb_table_stats 테이블의 table_name  컬럼을 통해 Table 명을 알게되어 풀었습니다.


"?col=test#&search=) union select 1,(select table_name from mysql.innodb_table_stats limit 0,1),3,4,5#" 와 같은 쿼리를 통해  Table 명을 leak 할 수 있었고, 그후 flag를 읽어왔습니다.


그러나 출제자 님의 말씀을 통해 의도하지 않은 풀이라는것을 알게되었고 원래 의도된 풀이를 말씀해주셨습니다.


그리고 저는 "이 외의 다른 풀이가 있을수도 있겠다"라는 생각을 가지고 다른 Table 명을 릭하는 방법을 몇개 적어 보겠습니다.


출제자 님의 풀이 : col=test#&search=1)^(id=1)-~1%23,


알게된 풀이 : col=test#&search=1) > exp(~((flag=1)))# , col=test#&search=1) > polygon(idx)#

등 더 다양한 풀이가 있습니다 이런식으로 leak을 한 뒤 flag를 뽑아오면 됩니다.


'Write up' 카테고리의 다른 글

[Codegate 2018] Simple CMS Write up  (0) 2018.02.08

보안을 공부하는 사람들과 커뮤니케이션이 별로 없어서 그룹이나 해커스쿨 같은 커뮤니티 사이트를 열심히 눈팅 하던 중 지인이 예전에 해커스쿨 취약점을 제보한것이 기억나서 "취약점을 찾아보자!" 라는 생각으로 취약점을 찾게 되었습니다.

(해당 취약점은 이미 패치가 되었고 내용을 올려도 된다는 해커스쿨 운영자님께 허락을 받고 올렸습니다.)


1. 회원가입 기능의 계정 중복확인 기능 XSS


해커스쿨 회원가입을 할 때 계정이 존재해주는 기능이 있는데 "<,>" 등 문제가 발생할만한 문자들이 치환되지 않는것을 확인할 수 있었습니다. 

그러나 chrome auditor 때문에 script를 실행할 수 없었고 고민을 하다 script src로 auditor bypass를 해보자 하여 제 웹서버에 js를 업로드 후 시도하였지만 실패했습니다. 

하지만 "해커스쿨 홈 페이지의 js 파일을 업로드후 그 경로를 통해 auditor bypass하면 되지 않을까?" 라는 생각을 하여 업로드 후 공격에 성공했습니다.



(이렇게요ㅎㅎ)


2. 게시판 XSS


위에 취약점을 발견후 더 파보자 해서 발견한 취약점 입니다.

이 취약점은 해커스쿨 게시판에서 글을 읽을때 아래와 같이 동적으로 title을 설정해줍니다.


(사진을 몇장 안찍어놔서...)


위와 같은 형식으로 title을 지정해주는데 이때 괄호 같은건 치환을 해도 쿼터와 같은 문자열은 안하길래 그냥 아래와 같이 공격하여 auditor bypass 및 xss 조졌습니다.



띠용 하나 더 있긴한데 이건 나중에 차차 올리도록 하겠습니다.


그 외의...


그 외의 틀린점이나 궁금하신 점 등은 아래의 메일로 알려주시면 감사하겠습니다.

E-mail : redrudolph_1@icloud.com



'BUGHUNT' 카테고리의 다른 글

mybb Stored XSS  (0) 2019.07.22
[XSS] hackerschool.org xss and chrome auditor bypass  (0) 2017.12.15

+ Recent posts