[webhacking.kr] Challenge 55 :: Blind SQL Injection 2 ▼ Challenge 55는 다음과 같습니다. 마우스 포인트 움직임에 따라 Score가 올라가고, Image와 X좌표, Y좌표가 일치하면 "Game Over"가 뜨면서 Score가 저장됩니다. ▼ rank.php는 다음과 같습니다. score 부분의 Link를 클릭하면 "?score=2147483647" Query를 전송하면서 상단에 id와 score가 출력됩니다. 처음 문제를 풀 때, JavaScript를 조작하여 높은 점수를 받는 것인지 알았지만, Proxy Tool을 이용하여 높은 점수를 보내봐도 Rank 테이블에 변화가 없으므로, 이러한 방식은 아닌 것 같습니다. ▼ rank.php 소스코드의 hint라는 주석문이 있고, 그 내용은 다음과 같습니다. rank라는 테이블이 있고, 그 안에 ip(=i.. 더보기 [webhacking.kr] Challenge 29 :: SQL Injection (subquery) ▼ Challenge 29는 다음과 같습니다. 갑자기 php 코드를 보여주질 않으니, 어렵게 느껴지고 많은 인내를 요구하는 문제였습니다. 파일명을 입력 받고, 화면에 출력하고 있습니다. 그러므로 INSERT 구문과 SELECT 구문으로 이뤄져 있다는 것을 추측할 수 있습니다. ▼ 추측 해본 SQL 구문은 다음과 같습니다. 123INSERT INTO c29_tb (time, ip, file) VALUES ('$time', '$_SERVER[REMOTE_ADDR]', '$fime_name'); SELECT time, ip, file FROM c29_tb WHERE ip='$_SERVER[REMOTE_ADDR]';cs 여기서 SELECT 구문에 WHERE 이하 절을 대충 생각하고 넘어가는 경우가 있는데, 파일.. 더보기 [webhacking.kr] Challenge 53 :: SQL Injection (procedure analyse() 함수) ▼ Challenge 53은 다음과 같습니다. ▼ php 소스는 다음과 같습니다. 12345678910111213141516171819202122232425262728293031323334Colored by Color Scriptercs "val" 파라미터가 12~23번 라인에서 필터링되고, 26번 Line에서 SELECT 구문으로 입력됩니다.그리고 6번 Line에서 "$hidden_table"을 알아내면 문제가 풀리게 됩니다. 예전 글 중에 MySQL에서 DB명과 Table명, Column명을 알아내는 방법에 대해 소개한 적이 있었습니다. (http://limjunyoung.tistory.com/4) 이와 같은 방법으로UNION SELECT table_name FROM information.schema.. 더보기 이전 1 ··· 11 12 13 14 15 16 17 ··· 34 다음