40

PHP 설치 각종 설정

php 레포추가sudo add-apt-repository ppa:ondrej/php 설치 후 엔진이 꺼져있을 때apt-get install libapache2-mod-php 혹은 apt-get install libapache2-mod-php7.0 현재 PHP 7.2을 사용중인데 PHP 5.6으로 디폴트 버전을 변경sudo a2dismod php7.2 ; sudo a2enmod php5.6 ; sudo service apache2 restartsudo update-alternatives --set php /usr/bin/php5.6 현재 PHP 5.6을 사용중인데 PHP 7.2로 디폴트 버전을 변경sudo a2dismod php5.6 ; sudo a2enmod php7.2 ; sudo service apa..

웹/PHP 2018.03.20

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