Lord of SQL Injection - death
얘도 뭐 별거 없다. md5 가 나와서 반가움의 인사만을 건네었다. id=\&pw= or id=0x61646d696e%23
얘도 뭐 별거 없다. md5 가 나와서 반가움의 인사만을 건네었다. id=\&pw= or id=0x61646d696e%23
갑가지 WAF를 우회할 수 있겠냐고 묻는다. 진짜 쫄았다. Web Application Firewall 은 웹 서비스와 주고 받는 트래픽들을 필터링 및 감시, 차단하는 방화벽의 한 형태라고 한다. 근데 뭐 필터링도 뭐 없고 문제도 너무 간단해 보이길래 몇가지 공격을 해보았더니 2~3회만에 뚫렸다. 공격에 실패하여 방화벽에 막히면 다음과 같은 화면으로 exit 되는 것 같다. 성공한 payload 는 별것 없다. 그냥 역슬래시를 사용하여 가운데를 통채로 날리면 된다. 예전에 있던 문제 유형이다. id=\&pw= or 1%23
Ouroborus. 아래 내가 그림판으로 그린 작품처럼 생겼다. "꼬리를 삼키는 자"로 통한다고 한다. 과연 이번에는 무슨 문제일까. 코드를 보면 딱히 구체적인 필터링은 사용하고 있지 않다. 사용할 수 있는지는 모르겠지만, 풀려있는 무기들이 많다. 이후에 query 문의 where 부분이 참값이 될 경우, 화면에 'Pw : ...' 를 띄우는 것 같다. 우선 테스트를 몇개 해보자. pw=' or 1%23 아무런 반응이 없다. table에 아무런 데이터가 존재하지 않는 것 같다. 지난번에도 table에 데이터가 존재하지 않았던 문제가 있었다. 이때는 union 을 통하여 데이터를 새롭게 전달해주어야 한다. pw=' union select 1%23 우선은 출력을 하는 데에 성공하였다. 하지만 문제가 하나 더..
query가 두 개 존재하는 문제이다. 잘 보면 위쪽 query 는 no 값에 아무런 quotation 이 사용되고 있지 않다. 반면에 아래의 query2는 single quotation 이 사용된 모습이다. 먼저 두 개의 query를 동시에, 동일한 query로 만들어주어야 할 것이다. 싱글쿼터와 주석을 잘 활용하면 될 것 같다. 다음과 같이 작성해보자. no=1 union select 1#' union select '1 결과는 아래와 같다. query : select id from prob_alien where no=1 union select 1#' union select '1 query2 : select id from prob_alien where no='1 union select 1#' union..