SQL Injection 11

로그인 페이지_prepared statement

SQL Injection 공격의 대응방안의 시작이자 끝 prepared statement. 이걸 하면 아예 SQL Injection 공격이 불가능하다는데, 1) 귀찮아서 안 하는 곳 2) 제대로 구현을 안 해놓은 곳이 있단다. 검색을 해보니 객체지향 방식과 절차형?! 방식이 있다는데, 나는 일단 객체를 잘 모르니. 절차형 방식으로 구현해보았다. 기존 방식의 경우 SQL 쿼리문을 만들고, 바로 mysqli_카레를 주문 때렸고, 그결과를 변수에 담아 사용 했다. 그러다 보니 로그인 ID 창에 공격자가 SQL Injection 공격 을 위해 (' or 1)등과 같은 값을 입력하면 이 값자체가 SQL 구문으로 인식되어 공격이 가능했다. [아, 물론 이 SQL문에서는 위의 값으로는 우회가 되지 않는다. 식별 인증..

10_LoSi_skeleton

include "./config.php";   login_chk();   $db = dbconnect();   if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");   $query = "select id from prob_skeleton where id='guest' and pw='{$_GET[pw]}' and 1=0";   echo "query : {$query}";   $result = @mysqli_fetch_array(mysqli_query($db,$query));   if($result['id'] == 'admin') solve("skeleton");   highlight_file(__FILE__); ?>1. 식별과 인증이 동시..

LoSi 2022.11.26