아파치, PHP 보안설정 1. 에러메시지 출력 해제php.inidisplay_errors = Off 1. 디렉터리 리스팅 끄기/etc/apache2/conf.d/security또는/etc/apache2/apache2.conf Options FollowSymLinks 디렉터리 리스팅 키려면Options Indexes FollowSymLinks 해당 디렉터리만 하려면 .htaccess에Options Indexes 웹/PHP 2017.01.12
requests 모듈 import requests header = {"Host":"192.168.0.1"}url = "http://url.com" r= requests.get(url, headers=header)print r.text $_SERVER['SERVER_NAME'] 조작됨. Host값이므로. Programming/python 2017.01.11
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
22 admin으로 로그인하면 된다.pw를 추출해내면 된다. id부분에 인젝션이 가능하다.'||1# 넣으니 Wrong password!라고 뜬다.참일 땐 Wrong password!, 거짓일 땐 Wrong!으로 뜨는듯. 회원가입하고 로그인 하면 해시 pw를 출력해준다.pw해시는 md5(GET_[pw]."zombie")로 하는듯 간단하게string = '0123456789abcdef'id=' or id='admin' and substr(pw,1,1)='string[x]'POST값 조작으로 추출해준다. write-up/webhacking.kr 2016.08.23
9번 http method GET, POST가 막혀있다.htaccess 등으로 limit 걸어놓은듯 하다. OPTIONS 등으로 우회해주자.크롬 extension 툴인 YARC (Yet Another REST Client)를 이용하였다. 필터링 목록이 꽤 빡쎄다.orand+unionselectasciichar 여기에다 공백까지 못 쓴다. %0a, %0b 모두 막혀있다.... ?no=1 ?no=3 예상할 수 있는 쿼리는 select id from table where no={$_GET[no]} if문과 substr을 이용해 한 글자씩 잘라냈다.그런데 문제는 쿼터와 ord함수, ascii함수를 못 쓴다. ?no=if(substr(id,1,1)like(0x61),3,0) ?no=if(substr(id,1,1)in(.. write-up/webhacking.kr 2016.07.17