Skip to content

Commit 8a23adb

Browse files
committed
add dubbo service full source taint range
1 parent 9c8b1ae commit 8a23adb

File tree

1 file changed

+9
-3
lines changed
  • dongtai-core/src/main/java/io/dongtai/iast/core/handler/hookpoint/controller/impl

1 file changed

+9
-3
lines changed

dongtai-core/src/main/java/io/dongtai/iast/core/handler/hookpoint/controller/impl/DubboImpl.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import io.dongtai.iast.core.handler.hookpoint.models.MethodEvent;
77
import io.dongtai.iast.core.handler.hookpoint.models.policy.SourceNode;
88
import io.dongtai.iast.core.handler.hookpoint.models.policy.TaintPosition;
9+
import io.dongtai.iast.core.handler.hookpoint.models.taint.range.*;
910
import io.dongtai.iast.core.utils.StackUtils;
1011
import io.dongtai.iast.core.utils.TaintPoolUtils;
1112
import io.dongtai.log.DongTaiLog;
@@ -68,9 +69,7 @@ public static void collectDubboRequestSource(Object handler, Object invocation,
6869
tgt.add(new TaintPosition("P1"));
6970

7071
SourceNode sourceNode = new SourceNode(src, tgt, null);
71-
if (arguments != null && arguments.length > 0) {
72-
TaintPoolUtils.trackObject(event, sourceNode, arguments, 0);
73-
}
72+
TaintPoolUtils.trackObject(event, sourceNode, arguments, 0);
7473

7574
Map<String, String> sHeaders = new HashMap<String, String>();
7675
if (headers != null) {
@@ -100,6 +99,13 @@ public static void collectDubboRequestSource(Object handler, Object invocation,
10099
event.setObjectValue(handler, false);
101100
event.setTaintPositions(sourceNode.getSources(), sourceNode.getTargets());
102101

102+
// for display taint range (full arguments value)
103+
String fv = event.parameterValues.get(0).getValue();
104+
int hash = System.identityHashCode(fv);
105+
int len = TaintRangesBuilder.getLength(fv);
106+
TaintRanges tr = new TaintRanges(new TaintRange(0, len));
107+
event.targetRanges.add(0, new MethodEvent.MethodEventTargetRange(hash, tr));
108+
103109
requestMeta.put("headers", sHeaders);
104110
JSONArray arr = new JSONArray();
105111
for (Object arg : arguments) {

0 commit comments

Comments
 (0)