mirror of
https://github.com/norandom/OpenUltraSAST.git
synced 2026-10-16 03:49:26 +00:00
feat(three-stage-scan): add split-sink fixtures the regex scan misses
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
#include <stdio.h>
|
||||
#include <sqlite3.h>
|
||||
|
||||
void search(sqlite3 *db, char *term) {
|
||||
char query[512];
|
||||
snprintf(query, sizeof(query), "SELECT * FROM items WHERE title LIKE '%%%s%%'", term);
|
||||
sqlite3_exec(db, query, 0, 0, 0); /* CWE-89 split-sink: query built on prior line (regex blind spot) */
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package example;
|
||||
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import java.sql.Connection;
|
||||
|
||||
class SplitSinkServlet {
|
||||
void search(HttpServletRequest request, Connection connection) throws Exception {
|
||||
String term = request.getParameter("q");
|
||||
String sql = String.format("select * from items where title like '%%%s%%'", term);
|
||||
connection.createStatement().executeQuery(sql); // CWE-89 split-sink: sql built on prior line (regex blind spot)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
// Split-sink SQL injection: query is built, then executed on the next line.
|
||||
const express = require("express");
|
||||
const app = express();
|
||||
|
||||
app.get("/search", (req, res) => {
|
||||
const term = req.query.q;
|
||||
const query = "select * from items where title like '%" + term + "%'";
|
||||
db.query(query); // CWE-89 split-sink: query built on prior line (regex blind spot)
|
||||
res.send("ok");
|
||||
});
|
||||
|
||||
module.exports = app;
|
||||
@@ -0,0 +1,11 @@
|
||||
"""Split-sink SQL injection: query is built, then executed on the next line."""
|
||||
from flask import Flask, request
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
|
||||
@app.get("/search")
|
||||
def search(db):
|
||||
term = request.args["q"]
|
||||
query = "select * from items where title like '%" + term + "%'"
|
||||
return db.execute(query) # CWE-89 split-sink: query built on prior line (regex blind spot)
|
||||
Reference in New Issue
Block a user