본문 바로가기
개인 공부/WEB

[웹해킹] LOS 8 - (Troll)

by 아메리카노와떡볶이 2021. 5. 30.
728x90
Lord of sql injection - Troll 풀이

los 8번 troll에 대한 풀이입니다.

preg_match를 살펴보면, 이번에는 싱글쿼터와 admin에 필터링이 걸려있습니다. 이 점을 참고해서 문제를 해결해 보겠습니다.

문제 접근 및 풀이

preg_match를 통해 문자열 패턴을 필터링할때, 대표적인 우회방법 두가지는

1. i 옵션이 없는 경우 대소문자를 바꿔서 우회할 수 있다. [ admin-> aDMiN]

2. Char, hex를 이용해서 우회할수있다. char(97,100,109,105,110),char(0x61636d696e)

따라서 문제를 접했을때 먼저 이 두가지를 확인해야합니다. 

 <?php  
  
include "./config.php"
  
login_chk(); 
  
$db dbconnect(); 
  if(
preg_match('/\'/i'$_GET[id])) exit("No Hack ~_~");
  if(
preg_match("/admin/"$_GET[id])) exit("HeHe");
  
$query "select id from prob_troll where id='{$_GET[id]}'";
  echo 
"<hr>query : <strong>{$query}</strong><hr><br>";
  
$result = @mysqli_fetch_array(mysqli_query($db,$query));
  if(
$result['id'] == 'admin'solve("troll");
  
highlight_file(__FILE__);
?>

admin에 대한 필터링에서 i option 즉 대소문자구분 상관없이 필터링하지않았기때문에

단순하게 admin 대신 Admin 등으로 우회할 수 있습니다

?id=Admin

 

 

결과

728x90

'개인 공부 > WEB' 카테고리의 다른 글

[웹해킹] LOS 10 - (Skeleton)  (0) 2021.05.30
[웹해킹] LOS 9 - (Vampire)  (0) 2021.05.30
[웹해킹] LOS 7 - (Orge)  (0) 2021.05.30
[웹해킹] LOS 6 - (Darkelf)  (0) 2021.05.30
[웹해킹] LOS 4 - (Orc)  (0) 2021.05.30

댓글