본문 바로가기

SQL2

SQL injection 기본 종류 where 구문 우회 아이디가 1인 데이터와 항상 '참'인데이터 모든 사용자가 리턴된다. union은 합집합으로 두개의 셀렉트 구문을 포함시킨다. 아이디가 1인 사용자와 모든 사용자의 이름과 비밀번호 리턴. 뒤에 #은 주석처리. 1' union select 1,1# 입력시 합집합으로 같이 출력. 1' union select 1,1,1# 3개를 넣었는데 에러가 뜬다? 이전 셀렉트 문 컬럼의 갯수는 2개만 사용된 것을 알 수 있다. 또 다른 방법 ORDER BY 는 정렬할 때 사용하는데 1' order by 1# 에러 발생 안함 1' order by 2# 에러 발생 안함 1' order by 3# 에러 발생! 컬럼 갯수는 2개라는 것을 알 수 있다. 유니온을 사용하면 정확한 값을 입력할때까지 대입해봐야하지만.. 2022. 4. 15.
[SQL 인젝션] LORD OF SQLINJECTION - gremlin 풀이 데이터베이스 -> 테이블 ->컬럼들- > 필드 정보 테이블 안에는 정보가 들어있다. 사이트를 해킹하지 말라고 적혀있고, 쿼리문 $query = "select id from prob_gremlin where id='{$_GET[id]}' and pw='{$_GET[pw]}'"; 을 통해 URL 뒤에 ?id=1&pw=1 쓰면 상단 query 에 기입된다. 결과가 참인 구문을 주면 해결이 될 듯 하다. ?id=&pw=1' or'1'='1'%23 이렇게 적거나 ?id=1' or'1'='1'%23 (참고로 뒤에 주석처리 #은 %23 으로 써야된다.) 아이디는 1 이거나 참이다 or 의 특성상 한쪽 결과가 참이면 참이 되버리기 때문에 or 1=1, 즉 1=1 이 참이므로 참인 결과가 된다. 뒤 코드는 주석을 통해 .. 2022. 2. 20.