php(4)
-
[어설픈] webhacking.kr 18번 문제풀이
안녕하세요! 오늘은 100점짜리 webhacking.kr 문제를 풀어보도록 하겠습니다! 문제에 들어가니 아래와 같이 뜨네요!바로 index.phps가 있으니저기에 SQL injection 할 때필터링 되는 단어나 규칙이 적혀있겠죠? 아래와 같이 소스코드가 나오네요!Get 방식으로 no라는 parameter를 쓰네요! 그리고 eregi 함수 문자열 필터링을 하네요!\ , / , | , \t, &, union, select, from , 0x 등을 하네요!사실 \과 & 사이에 공백도 있어서공백도 필터링 하는데이건 injection하면서 알았습니다.. 그리고 q변수에 mysql_fetch_array 결과 값을 담네요!쿼리는 "id = guest고 (no= 사용자가 입력한 no값) 충족하는 id를 18번 테이블..
2019.03.09 -
[php] preg_match 함수
안녕하세요!오늘은 php 함수중에preg_match 함수에 대해서설명할게요! 웹해킹 문제들을 풀다보면php 코드에서 자주 등장하는 함수입니다! 먼저 어떻게 쓰이는지 알아보겠습니다 물론 $matches 뒤에 PREG_OFFSET_CAPTURE을 쓰기도 하는데제일 자주 쓰이는 상태로 살펴보도록 하겠습니다! 먼저 대조 할 문자에 저희가 찾고 싶거나 필터링 하고 싶은 문자열을 넣습니다! 예를 들어 나는 a를 필터링하고 싶다하면'/a/' 이렇게 되겠죠?this를 필터링하고 싶다하면'/this/' 이렇게 되겠죠? 그럼 만약에 특수문자를 필터링하고 싶을땐요?' 이거 필터링 하고싶은데요?그럴땐 특수문자 앞에 \를 붙이면 돼요~ 이렇게요!'/\'/' 근데 가끔씩 '/admin/'i 이렇게i가 붙을수가 있습니다!이 경우는..
2019.02.22 -
[php] eval() 함수
PHP 코드에서 eval( )함수가 나와 간단하게 정리하고자 한다! eval( )함수는 제일 직관적으로 설명하면!"eval(여기에 있는 php코드를 실행)"이라고 정의 할 수 있다! ex) eval("echo 'a' ;")라고 작성을 하면괄호 안에 있는 문자열(string)을 php에서 실행시킨다고 보면 된다! 즉 과 같다는 이야기이다! 그래서 항상 ;(세미 콜론)을 끝부분에 적어주어야 한다! 근데 실제로는 eval의 이런코드를 동작시키는 기능 때문에개발할때 eval함수를 권하지 않는다! 왜냐하면 php변수 fun에 get 방식으로 입력을 받을 때!$fun=$_GET['fun']; 이 데이터의 내용을 eval 함수의 인자로 주면!eval($fun)이 된다! 하지만, 사용자가 이 fun에악의적인 스크립트를..
2019.02.19 -
[기초] 왜 브라우저에서는 php코드가 보이지 않는 것일까?
흔히 웹 해킹 문제들을 풀 때 F12를 눌러 개발자 도구를 켜서주석이나 식의 태그 등을 확인하곤 한다! 하지만 php 코드는 일반적인 경우100이면 99.99%의 확률로브라우저에는 php 소스코드가 보이지 않는다! 왜냐? 결론부터 말하자면!!브라우저는 클라이언트(사용자)쪽의 언어를 해석하기 때문이다!php는 서버쪽 언어이기 때문에 브라우저는 php가 이미 실행된 후 나온 결과 값만받아서 표시한다!!! 헷갈릴 수 있으니 좀 더 자세하게 설명하겠다 1. 우리가 브라우저에서 요청을 하는 경우(발신)------------------------------------------------------------브라우저 ==> 웹 서버 ===> php해석기| (요청 ) | ( 요청 ) | (나) 서버쪽 php 읽는 놈..
2019.02.18