현대 기업에서는 고객과의 원활한 연결을 위해 웹 애플리케이션을 도입하는 경우가 많지만, 잘못된 코딩으로 인해 많은 보안 문제가 발생하고 있습니다. 웹 애플리케이션의 취약점으로 인해 해커가 민감한 정보(예: 개인 데이터, 로그인 정보 등)에 직접 액세스할 수 있습니다.
웹 애플리케이션을 통해 방문자는 인터넷을 통해 데이터를 제출하고 데이터베이스에서 데이터를 검색할 수 있습니다. 데이터베이스는 대부분의 웹 애플리케이션의 핵심입니다. 데이터베이스는 웹 애플리케이션이 방문자에게 특정 콘텐츠를 전달하는 데 사용하는 데이터를 유지 관리합니다. 또한 웹 애플리케이션은 고객과 공급업체에 정보를 전달할 때 데이터베이스에서 데이터를 얻습니다.
SQL 주입 공격은 가장 일반적인 웹 애플리케이션 공격 기술로, SQL 명령을 우회하려고 시도합니다. 사용자 입력이 "삭제"되지 않은 경우 이 입력이 수행되면 SQL 주입 취약점이 나타납니다.
SQL 주입 취약점 검사에는 주로 두 가지 측면이 포함됩니다. 하나는 사용자의 웹 애플리케이션을 감사하는 것이고, 다른 하나는 자동화된 SQL 주입 스캐너를 사용하여 감사를 수행하는 가장 좋은 방법입니다. 여기에 저자는 웹 애플리케이션 개발자와 전문 보안 감사자에게 유용한 몇 가지 SQL 주입 스캐너를 나열합니다.
1. SQLIer
SQLIer는 해당 웹사이트에서 SQL 주입 취약점이 있는 URL을 찾아 해당 정보를 기반으로 SQL 주입 취약점을 생성할 수 있습니다. . 그러나 사용자 상호 작용이 필요하지 않습니다. 이러한 방식으로 UNION SELECT 쿼리를 생성할 수 있으며, 이 쿼리는 데이터베이스 비밀번호를 무차별 공격하는 데 사용될 수 있습니다. 이 프로그램은 취약점을 악용할 때 따옴표를 사용하지 않으므로 다양한 웹 사이트에 적용할 수 있습니다.
"true/false" SQL 주입 취약점을 통한 SQLIer 강력한 비밀번호. "참/거짓" SQL 주입 취약점의 강력한 비밀번호 덕분에 사용자는 데이터베이스에서 데이터를 쿼리할 수 없으며 "참" 및 "거짓" 값을 반환할 수 있는 명령문만 쿼리할 수 있습니다.
통계에 따르면 8자리 비밀번호(10진수 ASCII 코드의 모든 문자 포함)를 해독하는 데 약 1분밖에 걸리지 않습니다.
사용 구문은 다음과 같습니다. sqlier [option] [URL]
옵션은 다음과 같습니다.
-c :[主机] 清除主机的漏洞利用信息 -s :[秒]在网页请求之间等待的秒数 -u:[用户名]从数据库中强力攻击的用户名,用逗号隔开。 -w:[选项]将[选项]交由wget 此外,此程序还支持猜测字段名,有如下几种选择: --table-names [表格名称]:可进行猜测的表格名称,用逗号隔开。 --user-fields[用户字段]:可进行猜测的用户名字段名称,用逗号隔开。 --pass-fields [口令字段]:可进行猜测的口令字段名称,用逗号隔开。
기본 사용법에 대해 이야기해 보겠습니다.
For 예를 들어 다음과 같이 가정합니다. URL에 SQL 주입 취약점이 있습니다:
example.com/sqlihole.php?id=1
우리는 다음 명령을 실행합니다:
sqlier -s 10 example.com/sqlihole.php?id=1
여기서 숫자 "10"은 각 쿼리 사이에 10초를 기다리는 것을 의미합니다.
테이블, 사용자 이름 필드 및 비밀번호 필드 이름이 올바르게 추측되면 익스플로잇 프로그램은 사용자 이름을 쿼리에 제출하고 데이터베이스에서 비밀번호에 대한 무차별 공격을 준비합니다.
sqlier -s 10 example.com -u BCable,administrator,root,user4
그러나 내장된 필드/테이블 이름이 올바른 필드 이름을 추측하지 못하는 경우 사용자는 다음을 실행할 수 있습니다.
sqlier -s 10 example.com --table-names [table_names] --user-fields [user_fields] --pass-fields [pass_fields]
올바른 테이블 이름, 사용자 이름 필드 및 비밀번호가 아닌 경우 필드 이름이 알려진 경우 SQLIer는 데이터베이스에서 비밀번호를 무차별 대입 공격할 수 없습니다.
2. SQLMap:
이것은 python으로 개발된 자동 "블라인드" SQL 주입 도구입니다. 원격 데이터베이스를 완벽하게 열거할 수 있는 동적 데이터베이스 관리 시스템 핑거프린팅입니다. 목표는 SQL 주입 취약점으로 이어질 수 있는 웹 애플리케이션 프로그래밍의 모든 결함을 활용할 수 있는 완전한 기능의 데이터베이스 관리 시스템 도구를 구현하는 것입니다.
SQLMap이 대상 시스템에서 하나 이상의 SQL 주입 취약점을 탐지한 후 사용자는 다양한 옵션 중에서 선택하여 포괄적인 백엔드 데이터베이스 관리 시스템 핑거프린팅을 수행하고 데이터베이스 관리 시스템 세션을 검색하여 사용자를 열거할 수 있습니다. , 비밀번호 해시, 데이터베이스, 자체 SQL SELECT 문 실행, 파일 시스템의 특정 파일 읽기 등
이 소프트웨어는 MySQL, Oracle, PostgreSQL, Microsoft SQL Server 등과 같은 백엔드 데이터베이스 관리 시스템을 완벽하게 지원합니다. 또한 Microsoft의 Access 데이터베이스는 물론 DB2, Informix, Sybase, Interbase 등도 인식합니다.
사용 방법은 다음과 같습니다.
sqlmap.py [选项] {-u <URL> | -g <google dork> | -c <配置文件>} 其中,-u URL指明目标URL -g google dork 将google dork结果处理为目标url
3. SQLID:
이 도구는 SQL 주입 취약점 파기 도구입니다. 웹사이트에서 SQL 주입 취약점과 일반적인 오류를 찾을 수 있는 명령줄 유틸리티입니다. 웹 페이지에서 SQL 주입 취약점 찾기, 제출된 양식 테스트, SQL 주입 취약점 가능성 찾기 등 여러 작업을 수행할 수 있습니다. 또한 HTTP, HTTPS, 기본 인증 등을 지원합니다.
사용법은 다음과 같습니다.
Sqid.rb [옵션]
옵션은 다음과 같습니다.
-m,--mode MODE,它指明以某种模式进行操作,其中MODE有以下几种情况:g,google:以google搜索模式操作;u,url检查这个url;p,page,它主要检查单一的网页;c,crawl,检查站点。
그 중 구글 검색 모드는 옵션은 다음과 같습니다. -q, --quary query, QUERY는 google 검색을 실행합니다. -s, --start START, 필수 첫 번째 결과 인덱스 0, --results, 필수 개수를 지정합니다. 결과, 기본값은 20입니다.
4. SQL 파워 인젝터
SQL Power Injector可帮助渗透测试人员找到并利用网页上的漏洞。目前,它支持SQL Server、Oracle、MYSQL、Sybase/Adaptive Sever和DB2等数据库,但在使用inline注入时,还可借助现有的数据库管理系统来使用此软件。
其自动化的工作模式以两种方式进行,一是比较期望的结果,二是根据时间延迟。
其工作状态如图:
五、SQLNinja:
Sqlninja可以利用以SQL Server为后端数据支持的应用程序的漏洞,其主要目标是提供对有漏洞的数据库服务器的远程访问。Sqlninja的行为受到配置文件的控制,它告诉了Sqlninja攻击的目标和方式,还有一些命令行选项。比如,有如下一些命令选项:
-m<攻击模式>,其攻击模式有测试(test)、指纹识别(fingerprint)、强力攻击(bruteforce)等;
其它的命令选项,-v : 指明进行详细输出;-f:指明一个使用的配置文件。-w指明以强力攻击模式使用的单词列表。
如图是运行过程界面:
【相关推荐】
1. 特别推荐:“php程序员工具箱”V0.1版本下载
위 내용은 유명한 SQL 주입 취약점 검사 도구 5개 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!