Skip to content

Commit 8c28e26

Browse files
committed
Fix: null param in PUT and DELETE requests
1 parent b173685 commit 8c28e26

File tree

4 files changed

+38
-4
lines changed

4 files changed

+38
-4
lines changed

Diff for: dast-java/src/main/java/com/alipay/antbenchmark/controller/bs/BS00084Controller.java

+18-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
import java.io.InputStreamReader;
1515
import java.net.HttpURLConnection;
1616
import java.net.URL;
17+
import java.nio.charset.StandardCharsets;
18+
import java.util.HashMap;
1719

1820
@Controller
1921
@RequestMapping(value = "/ssrf")
@@ -26,7 +28,22 @@ public class BS00084Controller extends HttpServlet {
2628
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
2729
response.setContentType("text/html;charset=UTF-8");
2830

29-
String param = request.getParameter("BS00084");
31+
BufferedReader reader = request.getReader();
32+
String line;
33+
StringBuilder builder = new StringBuilder();
34+
while ((line = reader.readLine()) != null) {
35+
builder.append(line);
36+
}
37+
String[] pairs = builder.toString().split("&");
38+
HashMap<String, String> params = new HashMap<>();
39+
for (String pair : pairs) {
40+
String[] parts = pair.split("=");
41+
String key = parts[0];
42+
String value = parts.length > 1 ? parts[1] : "";
43+
params.put(key, value);
44+
}
45+
String param = params.get("BS00084");
46+
param = java.net.URLDecoder.decode(param, StandardCharsets.UTF_8.toString());
3047
StringBuffer responsestr = new StringBuffer();
3148
if (param.startsWith("https://www.alipay.com")) {
3249
try {

Diff for: dast-java/src/main/java/com/alipay/antbenchmark/controller/bs/BS00085Controller.java

+18-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
import java.io.InputStreamReader;
1515
import java.net.HttpURLConnection;
1616
import java.net.URL;
17+
import java.nio.charset.StandardCharsets;
18+
import java.util.HashMap;
1719

1820
@Controller
1921
@RequestMapping(value = "/ssrf")
@@ -26,7 +28,22 @@ public class BS00085Controller extends HttpServlet {
2628
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
2729
response.setContentType("text/html;charset=UTF-8");
2830

29-
String param = request.getParameter("BS00085");
31+
BufferedReader reader = request.getReader();
32+
String line;
33+
StringBuilder builder = new StringBuilder();
34+
while ((line = reader.readLine()) != null) {
35+
builder.append(line);
36+
}
37+
String[] pairs = builder.toString().split("&");
38+
HashMap<String, String> params = new HashMap<>();
39+
for (String pair : pairs) {
40+
String[] parts = pair.split("=");
41+
String key = parts[0];
42+
String value = parts.length > 1 ? parts[1] : "";
43+
params.put(key, value);
44+
}
45+
String param = params.get("BS00085");
46+
param = java.net.URLDecoder.decode(param, StandardCharsets.UTF_8.toString());
3047
StringBuffer responsestr = new StringBuffer();
3148
if (param.startsWith("https://www.alipay.com")) {
3249
try {

Diff for: dast-java/src/main/resources/callscanner/payloads/BS00084.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ scannerauth:cd117e0a9365670f19c768032f8dabfe
1111
Content-Type: application/x-www-form-urlencoded
1212
Content-Length: 30
1313

14-
BS00084=https://www.alipay.com
14+
BS00084=https://www.alipay.com@foo.dnslog.cn

Diff for: dast-java/src/main/resources/callscanner/payloads/BS00085.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ scannerauth:cd117e0a9365670f19c768032f8dabfe
1111
Content-Type: application/x-www-form-urlencoded
1212
Content-Length: 30
1313

14-
BS00085=https://www.alipay.com
14+
BS00085=https://www.alipay.com@foo.dnslog.cn

0 commit comments

Comments
 (0)