SQL注入技术和跨站脚本攻击的检测(1)_MySQL
1、概述
在这两年中,安全专家应该对网络应用层的攻击更加重视。因为无论你有多强壮的防火墙规则设置或者非常勤于补漏的修补机制,如果你的网络应用程序开发者没有遵循安全代码进行开发,攻击者将通过80端口进入你的系统。
广泛被使用的两个主要攻击技术是SQL注入[ref1]和CSS[ref2]攻击。SQL注入是指:通过互联网的输入区域,插入SQL meta-characters(特殊字符 代表一些数据)和指令,操纵执行后端的SQL查询的技术。这些攻击主要针对其他组织的WEB服务器。CSS攻击通过在URL里插入script标签,然后 诱导信任它们的用户点击它们,确保恶意JavaScript代码在受害人的机器上运行。这些攻击利用了用户和服务器之间的信任关系,事实上服务器没有对输入、输出进行检测,从而未拒绝JavaScript代码。
这篇文章讨论SQL注入和CSS攻击漏洞的检测技术。网上已经有很多关于这两种基于WEB攻击的讨论,比如如何实施攻击,他们的影响,怎样更好的编制和设计程序防止这些攻击。 然而, 对如何检测这些攻击并没有足够的讨论。我们采用流行的开源的IDS Snort[ref 3],组建根据检测这些攻击的规则的正则表达式。附带,Snort默认规则设定包含检测CSS的方法,但是这些容易被避开检测。比如大多通过hex进制编码,如%3C%73%63%72%69%70% 74%3E代替<script>避开检测。 </script>
依赖level of paranoia组织的能力,我们已经编写了多种检测相同攻击的规则。如果你希望检测各种可能的SQL注入攻击,那么你需要简单的留意任何现行的SQL meta-characters,如单引号,分号和双重破折号。同样的一个极端检测CSS攻击的方法,只要简单地提防HTML标记的角括号。但这样会检测 出很多错误。为了避免这些,这些规则需要修改使它检测更精确些, 当仍然不能避免错误。
在Snort规则中使用pcre(Perl Compatible Regular Expressions)[ref4]关键字,每个规则可以带或不带其他规则动作。这些规则也可以被公用软件如grep(文档搜索工具)使用,来审阅网络服务器日志。 但是,需要警惕的是,用户的输入只有当以GET提交请求时,WEB服务器才会记录日记,如果是以POST提交的请求在日记中是不会记录的。
2. SQL注入的正则表示式
当 你为SQL注入攻击选择正则表示式的时候,重点要记住攻击者可以通过提交表单进行SQL注入,也可以通过Cookie区域。你的输入检测逻辑应该考虑用户 组织的各类型输入(比如表单或Cookie信息)。并且如果你发现许多警告来自一个规则,请留意单引号或者是分号,也许些字符是你的Web应用程序创造的 合法的在CookieS中的输入。因此, 您需要根据你的特殊的WEB应用程序评估每个规则。
依照前面提到,一个琐细的检测SQL射入攻击的正则表达式要留意SQL特殊的meta-characters 譬如单引号(’)双重扩则号(--),为了查出这些字符和他们hex等值数, 以下正则表达式适用:
2.1 检测SQL meta-characters的正则表达式
/(/%27)|(/’)|(/-/-)|(/%23)|(#)/ix
解释:
我 们首先检查单引号等值的hex,单引号本身或者双重扩折号。这些是MS SQL Server或Oracle的字符, 表示后边的为评论, 随后的都将被忽略。 另外,如果你使用MySQL,你需要留意 ’#’和它等值的hex的出现。注意我们不需要检查双重破折号等值的hex, 因为这不是HTML meta-character, 浏览器不会进行编码。 并且, 如果攻击者设法手工修改双重破折号为它的hex值%2D(使用代理像Achilles[ref 5]), SQL注入将失败。
加入上述正则表达式的新的Snort规则如下:
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"SQL Injection - Paranoid"; flow:to_server,established;uricontent:".pl";pcre:"/(/%27)|(/’)|(/-/-)|(%23)|(#)/i"; classtype:Web-application-attack; sid:9099; rev:5;)
在本篇讨论中, uricontent关键字的值为".pl ", 因为在我们的测试环境里, CGI 程序是用Perl写的。uricontent关键字的值取决于您的特殊应用, 这个值也许是".PHP ", 或" .ASP ", 或" .JSP ", 等。 从这点考虑, 我们不显示对应的Snort 规则, 但是我们会给出创造这些规则的正则表达式。 通过这些正则表达式你可以很简单的创造很多的Snort规则.在前面的正则表达式里, 我们检测双重破折号是因为:即便没有单引号的存在那里也可能是SQL射入点[ref 6]。 例如, SQL查询条目只包含数值,如下:
select value1, value2, num_value3 from database
where num_value3=some_user_supplied_number
这种情况,攻击者可以执行额外的SQL查询, 示范提交如下输入:
3; insert values into some_other_table
最后, pcre的修饰符’ i’ 和’ x ’ 是用于分别匹配大小写和忽略空白处的。 上面的规则也可以另外扩展来检查分号的存在。然而,分号很可以是正常HTTP应答的一部分。为了减少这种错误,也是为了任何正常的单引号和双重扩折号的出现,上面的规则应该被修改成先检测=号的存。用户输入会响应一个GET或POST请求,一般输入提交如下:
username=some_user_supplied_value&password=some_user_supplied_value
因此, SQL 注入尝试将导致用户的输入出现在a = 号或它等效的hex值之后。
2.2 修正检测SQL meta-characters的正则表达式
/((/%3D)|(=))[^/n]*((/%27)|(/’)|(/-/-)|(/%3B)|(:))/i
解释:
这个规则首先留意 = 号或它的hex值(%3D),然后考虑零个或多个除换行符以外的任意字符,最后检测单引号,双重破折号或分号。
典型的SQL注入会尝试围绕单引号的用途操作原来的查询,以便得到有用的价值。讨论这个攻击一般使用1’or’1’=’1字符串. 但是, 这个串的侦查很容易被逃避,譬如用1’or2>1 --. 然而唯一恒定的部分是最初的字符的值,跟随一单引号,再加’or’。随后的布尔逻辑可能在一定范围上变化,可以是普通样式也可能是非常复杂的。这些攻击可 以相当精确被侦测,通过以下的正则表达式。2.3章节讲解

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









Windows 11 운영 체제에서 보안 센터는 사용자가 시스템 보안 상태를 모니터링하고 악성 코드로부터 보호하며 개인 정보를 보호하는 데 도움을 주는 중요한 기능입니다. 그러나 때로는 사용자가 특정 소프트웨어를 설치하거나 시스템 튜닝을 수행하는 경우와 같이 Security Center를 일시적으로 꺼야 할 수도 있습니다. 이 글에서는 시스템을 올바르고 안전하게 운영하기 위해 Windows 11 보안 센터를 끄는 방법을 자세히 소개합니다. 1. Windows 11 보안 센터를 끄는 방법 Windows 11에서는 보안 센터를 꺼도 작동하지 않습니다.

Java 프레임워크 디자인은 보안 요구 사항과 비즈니스 요구 사항의 균형을 유지하여 보안을 가능하게 합니다. 즉, 주요 비즈니스 요구 사항을 식별하고 관련 보안 요구 사항의 우선 순위를 지정합니다. 유연한 보안 전략을 개발하고, 계층적으로 위협에 대응하고, 정기적으로 조정하세요. 아키텍처 유연성을 고려하고 비즈니스 발전을 지원하며 보안 기능을 추상화합니다. 효율성과 가용성의 우선순위를 정하고 보안 조치를 최적화하며 가시성을 향상시킵니다.

생성 AI의 급속한 발전으로 인해 개인 정보 보호 및 보안에 전례 없는 문제가 발생하여 규제 개입에 대한 긴급한 요청이 촉발되었습니다. 지난 주, 저는 워싱턴 D.C.에서 몇몇 국회의원 및 그 직원들과 함께 AI가 보안과 관련된 영향에 대해 논의할 기회를 가졌습니다. 오늘날의 생성적 AI는 기초 연구, 잠재 잠재력 및 학문적 활용을 갖춘 1980년대 후반의 인터넷을 생각나게 하지만 아직 대중에게 공개될 준비가 되어 있지 않습니다. 이번에는 마이너 리그 벤처 캐피털과 트위터 에코 챔버에서 영감을 받은 자유로운 벤더 야망이 AI의 "멋진 신세계"를 빠르게 발전시키고 있습니다. "공용" 기본 모델은 결함이 있고 소비자 및 상업적 용도로 적합하지 않습니다. 만약 존재한다면 공격 표면으로 인해 체처럼 누출되는 보안 구조가 중요합니다.

오늘날 디지털 사회에서 컴퓨터는 우리 삶에 없어서는 안 될 존재가 되었습니다. 가장 널리 사용되는 운영 체제 중 하나인 Windows는 전 세계적으로 널리 사용되고 있습니다. 그러나 네트워크 공격 방법이 계속 확대되면서 개인용 컴퓨터 보안을 보호하는 것이 특히 중요해졌습니다. Windows 운영 체제는 일련의 보안 기능을 제공하며, 그 중 "Windows 보안 센터"는 중요한 구성 요소 중 하나입니다. Windows 시스템에서는 "Windows 보안 센터"가 도움이 될 수 있습니다.

Struts2 애플리케이션을 보호하려면 다음 보안 구성을 사용할 수 있습니다. 사용하지 않는 기능 비활성화 콘텐츠 유형 확인 활성화 입력 유효성 검사 보안 토큰 활성화 CSRF 공격 방지 RBAC를 사용하여 역할 기반 액세스 제한

C++에서 기계 학습 알고리즘을 구현할 때 데이터 개인 정보 보호, 모델 변조, 입력 유효성 검사를 포함한 보안 고려 사항이 중요합니다. 모범 사례에는 보안 라이브러리 채택, 권한 최소화, 샌드박스 사용 및 지속적인 모니터링이 포함됩니다. 실제 사례에서는 Botan 라이브러리를 사용하여 CNN 모델을 암호화 및 해독하여 안전한 교육 및 예측을 보장하는 방법을 보여줍니다.

PHP 보안 모범 사례를 구현하는 방법 PHP는 동적 및 대화형 웹 사이트를 만드는 데 사용되는 가장 인기 있는 백엔드 웹 프로그래밍 언어 중 하나입니다. 그러나 PHP 코드는 다양한 보안 취약점에 취약할 수 있습니다. 이러한 위협으로부터 웹 애플리케이션을 보호하려면 보안 모범 사례를 구현하는 것이 중요합니다. 입력 유효성 검사 입력 유효성 검사는 사용자 입력의 유효성을 검사하고 SQL 삽입과 같은 악의적인 입력을 방지하는 중요한 첫 번째 단계입니다. PHP는 filter_var() 및 preg_match()와 같은 다양한 입력 유효성 검사 함수를 제공합니다. 예: $username=filter_var($_POST['사용자 이름'],FILTER_SANIT

PHP 마이크로프레임워크에서 Slim과 Phalcon의 보안 비교에서 Phalcon에는 CSRF 및 XSS 보호, 양식 유효성 검사 등과 같은 보안 기능이 내장되어 있는 반면 Slim에는 기본 보안 기능이 부족하고 수동 구현이 필요합니다. 보안 조치. 보안이 중요한 애플리케이션의 경우 Phalcon은 보다 포괄적인 보호 기능을 제공하며 더 나은 선택입니다.
