blind sql은 비밀번호를 하나하나씩 알아내어 완전한 비밀번호를 찾는 sql injection 기법이다. 예를 들어 admin의 계정이 다음과 같다고 하자. username : admin password : P@ssword 그러면 평범한 blind sql injection은 다음과 같이 할 수 있다. Select * from users where username="admin" and substr(password, 1, 1)="P"; admin계정의 비밀번호 첫자리가 P이니깐 admin계정 정보가 출력될것이다. 반대로 P가 아닌 다른 문자면은 출력이 안될것이다. 이걸 이용해서 첫자리부터 끝자리까지 대입해서 확인하면 full password를 확인할 수 있다. 하지만 이걸 다 대입하기엔 문자에 숫자에 너..
php에서 리눅스 언어 예를들어, ls나 cat같은 명령어를 사용하고 싶을 때가 있다. 이 때 php에서도 셸 스크립트 언어를 사용할 수 있는데 내가 알아본 방법은 두가지이다. 1. system 함수 사용 간단하게 system함수 안에 사용하고 싶은 셸 명령어를 따옴표로 묶어 입력하면 된다. 2. 웹 셸 코드 작성 아예 웹에다가 셸 명령어를 작성할 수 있는 입력칸을 만드는 것이다. 위의 1번 방법보단 복잡하지만 한번 만들기만 하면 계속 사용할 수 있는 용이성이 있다.
SQL Injection 이란? 코드 인젝션의 한 방법으로 클라이언트의 입력값을 조작하여 서버의 데이터베이스를 공격할 수 있는 공격 방식 이러한 SQL injection 공격방식에는 여러가지가 있는데 대표적인 방식으로 주석과 논리 연산자를 사용하는 방법이다. 먼저 알아두어야 할 것은 SQL의 논리연산자 방식에선 AND연산자를 OR연산자보다 우선순위로 채택하고 있다. 때문에 AND연산자 계산 후 OR연산자 계산으로 가는 것이 마땅하다. 예를 들어 다음과 같은 로그인 방식이 있다 한다. SELECT user FROM user_table WHERE id='{uid}' AND password'{upw}'; 사용자가 uid가 admin인 계정에 침투할려고 할 때 다음과 같이 입력할 수 있다. 1. uid : ad..