detecting-sql-injection

仓库创建 2026年6月24日最近提交 21 天前SkillHot 收录 21 天前
▸ 精选理由

结合规则与AI语境验证,能区分危险的${}用法与安全绑定,减少误报。

这个 Skill 做什么

检测字符串拼接与未绑定参数导致的SQL注入风险,覆盖MyBatis/JPA/JSP场景。

检测因字符串拼接或未绑定参数导致的 SQL 注入风险,覆盖 JSP、MyBatis、JPA 等常见场景。用在检查搜索、排序、CRUD 接口、Mapper XML 或手写 SQL 时,能发现 ${param}、Statement 拼接、JdbcTemplate 拼接等危险用法。特点是会识别项目栈并结合 Semgrep 规则与 AI 上下文分析,减少误报并指出修复方向(如参数化查询、使用 #{param} 或预编译语句)。

▸ 展开 SKILL.md 英文原文

SQIsoft 웹 애플리케이션에서 SQL Injection(SQLi) 취약점을 검사한다. 사용자 입력이 SQL 쿼리에 파라미터 바인딩 없이 문자열 연결로 삽입되는 패턴을 탐지한다. 프로젝트 스택(Spring Boot 모던 / JSP·Servlet 레거시)을 자동 감지하여 스택별 Semgrep 룰로 1차 탐지하고, AI가 바인딩 방식과 입력 출처를 컨텍스트로 검증한다. JSP scriptlet Statement 문자열 연결, MyBatis Mapper XML ${param}(vs 안전한 #{param}), Spring JPA @Query 문자열 연결, JdbcTemplate 문자열 연결, 정렬·검색 컬럼명 동적 삽입 등을 찾는다.

开发编程SQL注入MyBatisJPA代码审计通用
0
Stars
0
Forks
16
仓库内 Skill
+0
7 日增星
安装 / 使用
给你的 Agent 一句话(通用)
帮我安装这个 skill:https://raw.githubusercontent.com/bs-koo/gx-security/main/skills/detecting-sql-injection/SKILL.md
或 curl 直取 SKILL.md
curl -fsSL "https://raw.githubusercontent.com/bs-koo/gx-security/main/skills/detecting-sql-injection/SKILL.md"
SKILL.MD 节选查看完整文件 ↗
# SQL Injection 취약점 검사

## When to Use

다음 중 하나라도 해당하면 이 스킬을 실행한다.

- SQIsoft 프로젝트(`sqisoft-sef-2026`, `Gseed_Web_Renew`)의 **DB 조회·수정·삭제 기능**(검색, 게시판 CRUD, 로그인, 관리자 필터)을 점검할 때
- MyBatis Mapper XML에서 `${param}` 사용 의심 시 (안전한 `#{param}` 와 구분)
- JSP scriptlet에서 `Statement` + 문자열 연결 패턴이 보일 때
- JPA `createQuery`·`@Query`에서 문자열 연결로 JPQL/SQL 조립 의심 시
- 검색 정렬 컬럼명·ORDER BY 절을 사용자 입력으로 동적 구성할 때
- 보안 코드 리뷰·출시 전 점검에서 SQL Injection 방어 적용 여부를 확인할 때

**이 스킬을 쓰지 않을 때:** XSS·CSRF 등 다른 취약점 클래스(→ 해당 스킬 사용). 사용자 입력이 전혀 없는 배치 쿼리·하드코딩 SQL.

## Prerequisites

- 대상 프로젝트 소스에 대한 읽기 접근
- (선택, 권장) `semgrep` 설치 — 없으면 `scripts/scan_sqli.py`가 grep 폴백으로 동작
- 스택 판별 참고: `references/stack-patterns.md`

## Workflow

### 0단계 — 스택
via SKILL·HOT · 数据来自 GitHub 公开信息 · 原文版权归作者所有