[Root-me] SQL injection - Authentication

 

 

 

 

LOS를 올클하고 첫 SQL injection 문제이다 ( 하하

 

 

관리자의 password를 알아내는 문제이다

 

los는 전부 코드가 보여져 있어서 생각하고 풀었다면 처음으로 문제가 코드가 가려진 것이라 당황했다.

그래서 대충 될 것같은 코드를 아무거나 집어넣어봤다.

 

위의 문제를 토대로 username이 administrator일 것으로 예상하고 아래의 쿼리를 id값에 넣었다.

 

 

 

 

Query : administrator' or (username='administrator' && length(password)>0)--

 

 

 

 

 

값을 넣었더니 우연치 않게 SQLite3를 사용하는 것으 알게 되었다.

los에서 후반부 문제중에 SQLite 쿼리로 테이블 이름이랑 컬럼명을 알 수 있었던 문제가 있어서 쿼리를 같이 사용해 보았다.

 

 

 

 

Query : 1' union select sql,2 tbl_name from sqlite_master;-- -

 

 

 

 

 

CREATE TABLE users(username TEXT, password TEXT, Year INTEGER)

다음과 같이 테이블을 만드는 쿼리를 얻을 수 있었고

users라는 테이블 명에 username, password 와 같은 컬럼명을 얻을 수 있었다.

 

얻은 컬럼명을 바탕으로 쿼리를 보냈는데 자꾸 오류가 나서 혹시나 싶어서 username에다가 admin을 넣었더니

admin 계정으로 로그인 되고 information을 얻을 수 있었다.

 

 

 

 

Query : ' or (username='admin' and length(password)>0)--

 

 

 

 

 

password가 계속 가려져 있어서 Blind SQL injection 해야하나 싶어서 length를 집어넣었었는데

아래에 use this password를 보고 개발자 도구를 열어서 봤더니 flag가 있었다.

' or username='admin'-- 정도로만 해도 될 것 같다.

 

 

 

 

 

 

 

-----------------------------------------------------------------------------------------------------------------------------------

처음으로 가려진 형태의 문제를 풀어보았다

필터링이 아무것도 안되어있는 것 같아서 쉬웠는 것 같다 이런문제가 los처럼 코드로 나와있었다면 엄청 빨리 풀지 않았을까 

 

조금은 실력이 오른 것 같아 소소하게 행복합니다 :)

'Web hacking > Root me' 카테고리의 다른 글

[Root-me] PHP - Serialization  (0) 2019.11.16
[Root-me] SQL injection - Error  (0) 2019.10.07
[Root-me] SQL Injection - Routed  (0) 2019.10.01
[Root-me] SQL injection - Numeric  (0) 2019.09.27
[Root-me] SQL injection - String  (0) 2019.09.27

+ Recent posts