일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- php login page
- Cookie
- Leviathan
- active recon
- overthewire
- sql injection
- php 파일 업로드하기
- FTZ
- OS Command Injection
- file upload
- tryhackme
- php
- ssrf
- Cryptography
- php file upload
- over the wire
- privilege escalation
- THM
- php To Do List
- access control
- Reconnaissance
- active reconnaissance
- php 로그인 페이지 만들기
- BANDiT
- Authentication
- SQLi
- 파일 업로드 취약점
- War Game
- Recon
- Server Side Request Forgery
- Today
- Total
목록Port Swigger/SQL Injection (9)
R's Hacking Daily Log
How to detect SQL injection vulnerabilities 공격자의 입장에서 SQL injection 공격을 한다고 할 때, 1. ' 를 입력해서 에러가 발생하는지 확인 2. or '1' = '1와 같은 boolean 조건문 활용 3. case then 문 사용 4. time delay 와 같은 기술을 Lab을 통해 접해보았다. sql injection에서는 web page에 결과를 포함하느냐 안 하느냐의 여부가 중요한 정보가 될 수 있으며 web page에서의 차이를 찾을 수 없다면 time delay와 같이 부가적인 기술을 사용할 수 있다는 것도 배울 수 있었다! 또한 mysql의 information_scheme같이 meta data를 저장하는 table을 활용하여 어떤 테이블이..
이번 글에서는 Blind SQL injection과 관련된 Lab 문제를 풀어보자!! 첫 번째 Lab )) :) 이 lab에서는 sql의 결과나 error 문구가 출력되지 않는 대신 "Welcome back" 문구가 페이지에 나온다고 한다. :) username & password column을 포함하는 users table이 있고 궁극적인 목표는 admin's password를 알아내 로그인하는 것! burp suite를 사용해 lab page를 요청하는 packet을 잡았다. 내용을 보면 Cookie : ~~ 해서 TrackingId의 값이 기재된 부분을 볼 수 있다. 본격적인 공격에 앞서 "welcome back"문구가 출력된다는 것이 어떤 말인지 확인해 보자. cookie_value' AND SU..
이번에 살펴본 TOPIC은 Blind SQL injection!! :) 앞에서 살펴본 상황과는 다르게 Blind SQL injection은 DB 에러나 SQL 결과가 반영된 HTTP 응답을 받을 수 없는 상황에서 사용된다. :) SQL 결과가 HTTP 응답에 포함되지 않는다는 건, 이전에 풀어본 lab에서와 같이 username이나 password가 페이지에 출력되지 않는다는 뜻이다. :) 이번에 살펴볼 application은 cookie를 사용해 인가된 사용자로부터 온 요청인지 확인한다. :) 주입된 SQL로 username과 같은 세부정보는 알아낼 수 없지만 cookie가 유효한 경우에는 "Welcome Back" 문구를 출력하고 유효하지 않은 경우에는 아무것도 출력하지 않는다. :) Welcome ..
이번에 정리할 SQL injection 내용은 Examining the database in SQL injection Attack이다. :) 앞에서 공부한 내용 중에서 username & password column을 갖는 users table이 있는 걸 공격자가 알고 이 내용을 조회하고 싶어 하는 상황을 가정했다. :) 사실 이 상황을 살펴보면 공격자는 users table에 대한 정보를 알아내는 단계를 미리 거쳐야 한다. :) Examining the database는 조회하고자 하는 "other database"의 테이블 정보를 수집하는 과정에서 사용할 수 있는 SQL injection이라 할 수 있다. Querying the database type and version 어떤 data base를 ..
SQLi (3)에서 살펴본 내용과 관련된 port swigger의 lab을 풀어보자! 첫 번째 lab에서는 column의 개수를 알아내라고 한다. url 창에 ' union select null--을 입력했더니 server error가 발생했다. null을 두 번 넣고 세 번 넣고 했더니..! column 개수가 3개인 걸 확인할 수 있었다. 두 번째 lab에선 제공한 특정 문자열을 가지고 어떤 column이 string data를 갖는지 확인하라고 한다. column의 개수가 3개인 건 첫 번째 lab에서 알아냈으니 총 3번만 시도해보면 알 수 있다. 두 번째 column 자리에 문자열을 넣고 확인해보니 공격에 성공했다. 이로써 3개의 column 중에서 두 번째 column은 string data를 ..
이번에 살펴볼 SQLi와 관련된 내용은 "Retrieving data from other database tables" 이다. :) DB 안에 있는 또 다른 테이블의 데이터를 조회하는 공격 :) Retrieving data from other database tables와 관련해서 중요한 keywords, "UNION" 다른 테이블의 데이터를 조회하는 부분은 UNION이라는 keyword가 중요하게 사용된다. 따라서 UNION과 관련된 SQL 내용을 전반적으로 살펴볼까 한다. SQL injection UNION Attack UNION attack이 무엇인지를 살펴보기 전에 UNION이 무엇인지를 먼저 간단히 설명하자면, UNION은 SQL에서 접속사처럼 사용할 수 있는 keyword로 하나 or 그 이상..
SQLi과 관련하여 살펴볼 두 번째 case는 "Subverting application logic"이다. :) application의 로직대로 따르지 않을 테야!! 라는 느낌이다. :) 이해를 돕기 위해 사용자의 username & password로 로그인을 하는 application이 있다고 상상해 보자. wiener이라는 계정을 로그인하기 위해 사용자는 username & password를 입력했다. SELECT * FROM users WHERE username = 'wiener' AND password = 'bluecheese' 서버는 사용자의 input 값을 가지고 DB에 username은 wiener이고 password는 bluecheese인 user 내용을 확인해 볼 것이다. 이 결과를 토대..
SQLi (1)과 관련된 간단한 lab을 해보자. 이번 lab의 목표는 카테고리 filter가 되는 application에서 카테고리와 released에 상관없이 모든 상품을 출력시키는 것!! lab에 들어가면 다음과 같은 화면이 출력된다. we like to shop 문구 밑에 보면 refine your search라고 해서 카테고리를 선택할 수 있는 부분이 보인다. 이 중에 아무거나 하나를 선택해보면 url이 filter?category=Accessories(클릭한 카테고리) 로 바뀌는 걸 볼 수 있다. 이번 lab의 목표는 카테고리에 상관없이 모든 상품을 출력시키는 거니까. or 1=1을 붙여 카테고리 값이 ture가 되도록 만들어보자. filter?category=Accessories'+OR+1=..