Fix undetected tests

This commit is contained in:
jorgectf
2021-07-25 01:51:52 +02:00
parent b83b31cc7a
commit 1dd77f167a
4 changed files with 17 additions and 13 deletions

View File

@@ -142,6 +142,8 @@ private module XML {
exists(XMLParser xmlParser |
xmlParser.mayBeDangerous() and this.getArgByName("parser").getALocalSource() = xmlParser
)
or
not exists(this.getArgByName("parser"))
}
}

View File

@@ -19,17 +19,19 @@ class XXEFlowConfig extends TaintTracking::Configuration {
override predicate isSink(DataFlow::Node sink) {
exists(XMLParsing xmlParsing | xmlParsing.mayBeDangerous() and sink = xmlParsing.getAnInput())
or
exists(XMLParser xmlParser | sink = xmlParser.getAnInput() and xmlParser.mayBeDangerous())
}
override predicate isSanitizerGuard(DataFlow::BarrierGuard guard) {
guard instanceof StringConstCompare
}
override predicate isAdditionalTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeIn) {
override predicate isAdditionalTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) {
exists(DataFlow::CallCfgNode ioCalls |
ioCalls = API::moduleImport("io").getMember(["StringIO", "BytesIO"]).getACall() and
nodeFrom = ioCalls and
nodeIn = ioCalls.getArg(0)
nodeFrom = ioCalls.getArg(0) and
nodeTo = ioCalls
)
}
}

View File

@@ -1,5 +1,5 @@
from flask import request, Flask
from io import StringIO
from io import StringIO, BytesIO
import xml.etree
import xml.etree.ElementTree
import lxml.etree
@@ -42,7 +42,7 @@ def xmltodict_parse():
@app.route("/lxml.etree.XMLParser+lxml.etree.fromstring")
def test1():
def lxml_XMLParser_fromstring():
xml_content = request.args['xml_content']
parser = lxml.etree.XMLParser()
@@ -50,7 +50,7 @@ def test1():
@app.route("/lxml.etree.get_default_parser+lxml.etree.fromstring")
def test1():
def lxml_defaultParser_fromstring():
xml_content = request.args['xml_content']
parser = lxml.etree.get_default_parser()
@@ -58,7 +58,7 @@ def test1():
@app.route("/lxml.etree.XMLParser+xml.etree.ElementTree.fromstring")
def test1():
def lxml_XMLParser_xml_fromstring():
xml_content = request.args['xml_content']
parser = lxml.etree.XMLParser()
@@ -66,7 +66,7 @@ def test1():
@app.route("/lxml.etree.XMLParser+xml.etree.ElementTree.parse")
def test1():
def lxml_XMLParser_xml_parse():
xml_content = request.args['xml_content']
parser = lxml.etree.XMLParser()

View File

@@ -22,14 +22,14 @@ class MainHandler(xml.sax.ContentHandler):
@app.route("/MainHandler")
def test1():
def mainHandler():
xml_content = request.args['xml_content']
return MainHandler().parse(StringIO(xml_content))
@app.route("/xml.sax.make_parser()+MainHandler")
def test1():
def xml_makeparser_MainHandler():
xml_content = request.args['xml_content']
BadHandler = MainHandler()
@@ -40,7 +40,7 @@ def test1():
@app.route("/xml.sax.make_parser()+MainHandler-xml.sax.handler.feature_external_ges_False")
def test1():
def xml_makeparser_MainHandler_entitiesFalse():
xml_content = request.args['xml_content']
BadHandler = MainHandler()
@@ -55,7 +55,7 @@ def test1():
@app.route("/xml.sax.make_parser()+MainHandler-xml.sax.handler.feature_external_ges_True")
def test1():
def xml_makeparser_MainHandler_entitiesTrue():
xml_content = request.args['xml_content']
GoodHandler = MainHandler()
@@ -67,7 +67,7 @@ def test1():
@app.route("/xml.sax.make_parser()+xml.dom.minidom.parse-xml.sax.handler.feature_external_ges_True")
def test1():
def xml_makeparser_minidom_entitiesTrue():
xml_content = request.args['xml_content']
parser = xml.sax.make_parser()