이전 문제들과 같이 admin 계정의 password를 얻는 문제이다.

 

 

 

 

 

 

 

이것 저것 눌러보면서 news_id의 파라미터 값이 1,2,3 으로 바뀌는 것을 보고 이번엔 여기다가 공격 시도를 해보았다.

역시나 이전 문제들과 같이 테이블 정보를 얻기 위한 쿼리를 보냈다.

 

 

 

Query : 2 union select sql,1,2 from sqlite_master-- 

 

 

 

왜 그런지는 잘 모르겠으나, 첫번째 sql부분이 나오지 않고 두번째, 세번째 값만 출력돼서 값의 순서를 바꾸어 보아서 해보니 값이 원하는대로 잘 나온다.

 

 

 

 

 

 

 

 

이전 문제들과 같이 users라는 테이블에 username과 password라는 컬럼명을 얻을 수 있었고

username과 password를 얻기 위해 다음과 같이 쿼리를 보내서 답을 얻을 수 있었다.

 

 

 

 

Query : 2 union select 1,username,password from users-- 

 

Clear~

 

 

 

 

 

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

 

이전 문제들과 쿼리는 다를 것 없이 공격 위치만 바뀌어서 슥슥 풀리는구만

필터링도 많이 없는 것 같은데 다른방법으로도 할 수 있지 않을가

'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 - String  (0) 2019.09.27
[Root-me] SQL injection - Authentication  (0) 2019.09.11

 

 

 

똑같이 admin 계정의 password를 알아내는 문제이다

 

 

Query를 넣을 부분을 찾다가 Search 부분에 값을 넣으면 될 것 같았다.

 

 

 

 

이전에도 sqlite_master로 부터 데이터를 얻는게 가능했어서 이번에도 될 것 같아서 시도해보니

역시나 테이블 정보를 얻을 수 있었다.

 

 

 

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

 

 

 

 

 

위의 결과로 users라는 테이블명으로 username, password가 컬럼명으로 있는 것을 알 수 있었고

username이 admin인 password를 알기 위해서 아래와 같은 쿼리를 보내서 결과를 얻을 수 있었다.

 

 

Query : ' union select password, 1 from users where username='admin'-- 

 

 

 

 

그리고 나온 값이 답이 되어서 Clear :)

 

 

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

 

String의 의미는 무엇일까

'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 - Authentication  (0) 2019.09.11

[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