내 웹사이트가 한 달 전에 공격을 받았는데, 오늘 360으로부터 취약점 탐지 보고서를 받았습니다. 맙소사, 360이 아직도 이런 짓을 하는 걸까요?
sql 주입
취약점 링크 1:
http: //xxx.com:80/index.php?alias=message&action=comment?comment-diary-id=1&comment-ip=182.118.33.8&comment-author=88888&comment-email =hacker@hacker.org&comment-url=http: //www.hacker.org/&comment-text=88888&comment-submit=SEND&comment-parent=0 RLIKE (SELECT (CASE WHEN (4725=4725) THEN 0 ELSE 0x28 END))
취약점 링크 2:
http: //xxx.com:80/index.php?alias=message' AND SLEEP(5)%20%23
취약점 링크 3:
http: //xxx.com:80/index .php?cat=note' AND 'dSob'='dSob
xss
취약점 링크:
http: //xxx.com:80/admin/login.php?req_url=/admin/index.php"><script>alert(42873)</script>
데이터베이스에 쓸 때 추가 속눈썹을 사용할 때 왜 여전히 삽입됩니까? 주입하려면 링크 1과 링크 2를 결합해야 합니까?
두 번째 취약점은 어떻게 방어해야 할지 모르겠습니다.
사이트 보안에 대한 심층적인 조사가 없습니다. 이것이 어떻게 달성되는지, 그리고 허점을 수정하는 방법에 대해 분석해 주시길 바랍니다.
데이터베이스에 코드를 작성해야 하는 경우 게시해 드리겠습니다.
PS, 작성 링크는 SF에 의해 자동으로 단축되므로 http:
뒤에 공백이 추가됩니다.
디버깅하고 나면 인젝션이 되는군요...아직 sql에 대해 잘 모르겠습니다
데이터베이스에 기록된 최종 문은 다음과 같습니다.
으아악마지막 문장이 무슨 뜻인지 묻고 싶습니다
으아악
xss 중첩된 html 스크립트 코드, 매개변수는 html 엔터티로 변환되어야 합니다. 함수 htmlspecialchars
Connection 1은 mysql의 키워드를 입력하여 mysql을 수행하는 것입니다. 이제 키워드를 필터링해야 합니다.
물론, 주입을 방지하는 가장 좋은 방법은 전처리를 사용하는 것입니다! ! ! !
SQL 문을 연결하는 대신 매개변수화된 쿼리를 사용하는 것이 가장 좋습니다.
xss는 매개변수 필터링을 통해
<script>
와 같은 스크립트 코드를 필터링할 수 있습니다.귀하의 코드는 전혀 필터링되지 않습니다