게시판이다.
나의 권한은 지금 guest라서, secret이 0으로 설정된 admin의 글을 누르면 Access가 Denied된다
근데 밑에 search가 있다. 요것이 무엇이냐, 검색쿼리가 월권해서 비밀글을 무시하고 보여주는 그런 취약점을 의미하는 모양이다.
생각은 그렇게하지만 실천하는게 문제니까.. 일단 좀 둘러보자
raw엔 별다른게 없다. 컬럼명을 알아내볼까해서 procedure analyse() 를 해볼까 했는데 아닌것 같다
어떤식으로 검색이 이루어지나 간을 보자.
우선 id도 검색이 되나 해서 g, gu, guest 로 검색을 해봤는데 하나도 매치되지 않는다.
subject에만 해당되는것 같은데, hi나 i~로 검색해도 나온다. 근데 이상하게 h로 검색하면 둘다 나온다. 왜지?
그리고 hi% 이렇게 검색해도 다 나 검색되었다. 아마 검색을 like로 수행하고 있는것 같긴하다.
그리고 아무래도 contents까지 검색이 되는 모양이다.
그러니까, admin이 작성한 readme라는 글에도 h라는 단어가 있다는 말이겠다.
그래서 한글자씩 검색을 하는 코드를 만들어 돌려봤더니 다음 값이 나왔다
hkpHKP0.%_
요렇게 값이 나온다. %랑 _는 그렇다고 쳐도 &는 왜 있는지 모르겠다.
뭐가 되게 많다. 이중에 내용을 알아야 될터이니..
그래서 대문자는 그냥 case가 정확하지 않아서 나온걸테니 소문자만 뽑고, .도 넣어서 리스트를 만들었다
그리고 순열을 만들어서 경우의 수를 뽑아보았다
python itertools의 permutation을 사용했는데
대략 요런식으로 리스트가 나온다.
[('h', 'k', 'p', '.'), ('h', 'k', '.', 'p'), ('h', 'p', 'k', '.'), ('h', 'p', '.', 'k'), ('h', '.', 'k', 'p'), ('h', '.', 'p', 'k'), ('k', 'h', 'p', '.'), ('k', 'h', '.', 'p'), ('k', 'p', 'h', '.'), ('k', 'p', '.', 'h'), ('k', '.', 'h', 'p'), ('k', '.', 'p', 'h'), ('p', 'h', 'k', '.'), ('p', 'h', '.', 'k'), ('p', 'k', 'h', '.'), ('p', 'k', '.', 'h'), ('p', '.', 'h', 'k'), ('p', '.', 'k', 'h'), ('.', 'h', 'k', 'p'), ('.', 'h', 'p', 'k'), ('.', 'k', 'h', 'p'), ('.', 'k', 'p', 'h'), ('.', 'p', 'h', 'k'), ('.', 'p', 'k', 'h')]
순서대로 한개씩 넣어본다.
이렇게 푸는건 아니겠지만 뭔가 하나가 걸렸다
('k', '.', 'p', 'h')
아니 얘 생긴게 ... k.ph 란다. k.php를 의미하는게 아닐까? k.php를 넣고 검색해봤다. 나온다.
그럼 k의 앞이나 뒤에 하나씩 붙는것 같은데..
hkp중에 또 몇개가 붙을지 돌려본다.
음, 답이 나왔다.
아무래도 뒷걸음치다가 뭐 잡은 격이 된것 같아 좀.. 찝찝한걸........