Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit c962377

Browse files
Rasmus Lerchedahl PetersenRasmus Lerchedahl Petersen
authored andcommitted
Python: test for subclasses
1 parent 08af839 commit c962377

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

python/ql/test/experimental/library-tests/frameworks/django-v1/response_test.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,16 @@ def or__redirect(request):
2222

2323
# Ensure that simple subclasses are still vuln to XSS
2424
def xss__not_found(request):
25-
return HttpResponseNotFound(request.GET.get("name")) # $f-:HttpResponse
25+
return HttpResponseNotFound(request.GET.get("name")) # $f-:HttpResponse $f-:mimetype=text/html; charset=utf-8 $f-:responseBody=Attribute()
2626

2727
# Ensure we still have an XSS sink when manually setting the content_type to HTML
2828
def xss__manual_response_type(request):
2929
return HttpResponse(request.GET.get("name"), content_type="text/html; charset=utf-8") # $HttpResponse $mimetype=text/html $responseBody=Attribute()
30+
31+
# Ensure manual subclasses are vulnerable
32+
class CustomResponse(HttpResponse):
33+
def __init__(self, banner, content, *args, **kwargs):
34+
super().__init__(content, *args, content_type="text/html", **kwargs)
35+
36+
def xss__custom_response(request):
37+
return CustomResponse("ACME Responses", request.GET("name")) # $f-:HttpResponse $f-:mimetype=text/html $f-:responseBody=Attribute()

0 commit comments

Comments
 (0)