국제 웹 보안 표준 기구(OWASP - Open Web Application Security Project)에서 해마다 자주 발생하는 웹보안취약점 Top 10 을 선정하여 발표 합니다. 이것을 기준으로 PHP웹 보안 취약점 Top5를 알아보고, 해결책을 제시합니다. 1. 원격 코드 실행 ( Remode Code Execution ) 이 방식은 주로 소스코드에 include 함수나 fopen 함수를 이용하여 변수로 넘겨받아서 파일명을 동적으로 불러들이는 코드에서 발생합니다. 예 include $_POST['filename'] 또는 include $filename; 위 예는 홈페이지 레이아웃을 구조화(header, footer 등) 할 때 사용합니다. 해킹예) http://사이트주소/파일명?filename=..
webhacking.kr 51번 문제 : sql 인젝션
webhacking.kr 49번 문제 : sql injection 문제 첫 페이지 화면 1 : koang2 : zzibong 이렇게 출력이 된다. 옛날 미니홈피를 들어가보니 이 문제를 풀었던게 아닌가!!하지만 기억이 하나도 나질 않아서.. 다시 풀었다.. 소스를 보니 다음과 같이 있었다 결국엔 admin 값을 추출하라는 것임 lv 값을 거짓으로 처리해버리고 id 가 admin 을 가져오면 된다. 해킹에 관심을 두고 있다면 프로그래밍 역시 할 줄 알것이라고 생각하므로! && || 이런 기호들도 알것이라고 생각한다. 그리고 admin 의 값을 Hex 값으로 넘겨줘야 한다. %를 막아놨기 때문에 아스키코드를 사용할수 없다. 자 그러면 나머지는 스스로 풀도록 해보자url?lv=4%0a||id=0x61646d696e
webhacking.kr 21번 문제 : blind sql injection blind sql injection 은 참과 거짓을 이용하여 게싱하는 것이다! 1을 누르고 제출해보니 URL에 no=1&&id=&&pw= 가 나왔다. id하고 pw를 이용하여 생각해보면 된다. 단순히 이런 컬럼이 있다는 것을 암시해주는 것 같았다. 인터넷을 뒤져보다가 blind sql injection은 substr, ascii, length 함수를 이용하라고 나와있었따. ascii(substr(id,1,1))=97위의 문장은 id값 첫번째 중에서 하나를 잘라서 97('a') 가 있는지 확인하는 구문이다. 있으면 True 없으면 False 해보면 알겠지만no = 1 // guestno = 2 // admin 이다. URL에다가 ..