Web Hacking

Web Hacking/LOS

Lord of SQL Injection - zombie_assassin

이전 succubus 문제와 query 문의 형식은 아주 비슷하다. 그러나 addslashes 함수가 추가되어 있다. addslashes 함수는 GET 방식으로 받아온 데이터에 싱글쿼터나 더블쿼터, 그리고 역슬래시가 있으면 해당 문자의 바로 앞에 역슬래시를 하나 더 붙여주는 역할을 한다. 예를 들어 query 문이 id=" 과 같이 전달되었다면, addslashes 함수를 거친 이후에는 id=\" 과 같이 역슬래시가 추가된다. 따라서 succubus 문제처럼 역슬래시를 이용하여 바로 뒤의 싱글쿼터를 문자열로 인식시키는 방법은 사용할 수 없다. 그런데 우리에게는 같은팀이 하나 존재한다. strrev 함수이다. 누가봐도 문자열은 reverse 시키는 함수이다. 이를 이용하면 위와 같이 쿼리문을 전달했을 때 ..

Web Hacking/LOS

Lord of SQL Injection - succubus

preg_match('/prob|_|\.|\(\)/i' 를 통하여 'prob', '_', '()', '.' 를 필터링하고 있다. 또한 아래에서는 싱글쿼터(')를 필터링하고 있다. id 와 pw 의 입력값이 모두 싱글쿼터로 갇혀있기 때문에 어떻게든 탈출시켜야 한다. 이전에는 싱글쿼터를 한 번 더 사용함으로써 기존의 싱글쿼터를 탈출했다. 하지만 지금은 싱글쿼터가 필터링 되어있기 때문에 다른 방법을 찾아야 한다. 우선 더블쿼터를 이용해보려고 했다. 하지만 쿼리문 자체에서 싱글쿼터로 입력값을 감싸기 때문에 소용이 없다. 그 다음으로는 주석을 이용하려고 했다. 하지만 어떻게든 문자열을 탈출하여 'or TRUE' 라는 쿼리문을 만들어야 한다. 문자열 탈출이 답이다. mySQL 에는 '\' 를 이용함으로써 특수문자를..

Web Hacking/LOS

Lord of SQL Injection - assassin

wild card 를 활용하는 문제다. mySQL 에는 '_' 과 '%' 가 있다. mySQL에서는 guest 가 admin 의 계정보다 table 상에서 상단에 위치하여 먼저 검색되는 특징을 가지고 있다. 이를 이용하여 코드를 짜면 다음과 같다. 원래는 where 뒤의 구문만을 참으로만 만들면 되지만, 어렵지 않게 전체 admin 계정의 비밀번호를 파악할 수 있다. 아스키코드 값들을 넣어주는 과정에서 underscore('_')가 비밀번호로 인식되는 현상이 있어 이를 삭제하는 코드도 추가하였다. 1 # For LOS exploitation 2 import requests 3 4 requests.packages.urllib3.disable_warnings() 5 org_url = "https://los...

Web Hacking/LOS

Lord of SQL Injection - giant

공백에 대한 필터링 문제이다. from prob_giant 와 같이 띄어쓰기(공백)이 존재해야 하지만 붙어있는 상태이다. 이 가운데에 shit이라는 값을 GET 방식으로 받아온다. 변수명이 참 마음에 든다. 이전에 공백은 단순하게 %09(TAB) 로 우회하였다. 하지만 필터링에 '\t' 가 존재하기 때문에 이를 사용할 수는 없다. 아스키코드의 제어문자 중에는, 0x0a(Line Feed, \n, 개행) 0x0b(Vertical Tab, \v, 수직 개행(개행 후 TAB)) 0x0c(Form Feed, \f, 새로운 페이지) 0x0d(Carriage Return, \r, 개행) 이 있다. 위에서 필터링 되지 않는 0x0b or 0x0c 를 사용하면 된다.

Lucvs
'Web Hacking' 카테고리의 글 목록 (9 Page)