일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 금리인하
- 불가피
- 이상형 만들기
- 양적완화
- 성남 코로나 확진자
- 스페인 코로나
- 김영권 아내
- 최강욱
- 홍혜걸
- 유튜버 김재석
- 고민정
- 해킹
- 이태원 클라쓰 15회 예고
- 성남은혜의강교회
- 조희연
- 픽크루
- 학교 개학 연기 4월
- 제넥신
- 킹덤 고근희
- 스콜피온킹
- 은혜의 강 교회
- 김재석
- libtins
- 리리남매
- 김영권
- 이지혜
- 폰폰테스트
- 임영규
- 뭉쳐야 찬다
- 미국 금리인하
Archives
- Today
- Total
Dork's port
SQL-injection - SQL injection UNION attack, retrieving multiple values in a single column 본문
portswigger-academy
SQL-injection - SQL injection UNION attack, retrieving multiple values in a single column
Dork94 2020. 7. 14. 16:17- 마찬가지로 admin의 id, pw를 이용해서 로그인 하면 되는 문제.
- 이전 문제와 다른 점은 data type이 text인게 2개의 필드중 하나밖에 없었다.
- 따라서, username과 password를 한 필드에 동시에 출력하지 못하므로 (문제에서는 동시에 출력하라고 했으나 이 방법으로 풀지 않음) 가장 무식한 방법으로는 username과 password를 한번씩 쿼리를 날리고 나오는 password list를 이용해서 brute force를 하는 방법이다.
- 다만 나는 다른방법으로 풀었는데,
' UNION SELECT NULL , password from users where username like '%admin%'--
이렇게 하게 되면, 아이디에 admin이 속한 것 중, password만 출력이 되므로, 계정의 password를 쉽게 알 수 있다. - Solution을 보니 동시에 출력하는 방법으로는 database에 제공하는 concatenation을 이용해서 동시에 출력하도록 한다.
' UNION SELECT NULL , username || '~' || password from users--
이런식으로 하면 ~를 token으로 왼쪽에 id, 오른쪽에 password가 위치하게 된다. 다만 concatenate 하는 방법은 database 마다 다르므로, 모두 시도해보거나, database의 정보를 미리 사전에 탐색하여 이용하면 좋을 것 같다.
'portswigger-academy' 카테고리의 다른 글
Comments