@@ -20,33 +20,33 @@ func fasthttpClient() {
2020
2121 res := & fasthttp.Response {}
2222 req := & fasthttp.Request {}
23- req .SetHost (userInput ) // $ ReqSucc= req ReqPred=userInput
24- req .SetHostBytes (userInputByte ) // $ ReqSucc= req ReqPred=userInputByte
25- req .SetRequestURI (userInput ) // $ ReqSucc= req ReqPred=userInput
26- req .SetRequestURIBytes (userInputByte ) // $ ReqSucc= req ReqPred=userInputByte
23+ req .SetHost (userInput ) // $ hasTaintFlow=" req" ReqPred=userInput
24+ req .SetHostBytes (userInputByte ) // $ hasTaintFlow=" req" ReqPred=userInputByte
25+ req .SetRequestURI (userInput ) // $ hasTaintFlow=" req" ReqPred=userInput
26+ req .SetRequestURIBytes (userInputByte ) // $ hasTaintFlow=" req" ReqPred=userInputByte
2727
2828 uri := fasthttp .AcquireURI ()
2929 userInput = "UserControlled.com:80"
3030 userInputByte = []byte ("UserControlled.com:80" )
31- uri .SetHost (userInput ) // $ UriPred=userInput UriSucc= uri
32- uri .SetHostBytes (userInputByte ) // $ UriPred=userInputByte UriSucc= uri
31+ uri .SetHost (userInput ) // $ hasTaintFlow=" uri"
32+ uri .SetHostBytes (userInputByte ) // $ hasTaintFlow=" uri"
3333 userInput = "http://UserControlled.com"
3434 userInputByte = []byte ("http://UserControlled.com" )
35- uri .Update (userInput ) // $ UriPred=userInput UriSucc= uri
36- uri .UpdateBytes (userInputByte ) // $ UriPred=userInputByte UriSucc= uri
37- uri .Parse (userInputByte , userInputByte ) // $ UriPred=userInputByte UriPred=userInputByte UriSucc= uri
38- req .SetURI (uri ) // $ ReqSucc=req ReqPred= uri UriSucc=uri
35+ uri .Update (userInput ) // $ hasTaintFlow=" uri"
36+ uri .UpdateBytes (userInputByte ) // $ hasTaintFlow=" uri"
37+ uri .Parse (userInputByte , userInputByte ) // $ hasTaintFlow=" uri"
38+ req .SetURI (uri ) // $ hasTaintFlow=" uri" hasTaintFlow="req"
3939
4040 resByte := make ([]byte , 1000 )
4141 userInput = "http://127.0.0.1:8909"
4242 fasthttp .Get (resByte , userInput ) // $ SsrfSink=userInput
4343 fasthttp .GetDeadline (resByte , userInput , time.Time {}) // $ SsrfSink=userInput
4444 fasthttp .GetTimeout (resByte , userInput , 5 ) // $ SsrfSink=userInput
4545 fasthttp .Post (resByte , userInput , nil ) // $ SsrfSink=userInput
46- fasthttp .Do (req , res ) // $ ReqSucc= req SsrfSink=req
47- fasthttp .DoRedirects (req , res , 2 ) // $ ReqSucc= req SsrfSink=req
48- fasthttp .DoDeadline (req , res , time.Time {}) // $ ReqSucc= req SsrfSink=req
49- fasthttp .DoTimeout (req , res , 5 ) // $ ReqSucc= req SsrfSink=req
46+ fasthttp .Do (req , res ) // $ hasTaintFlow=" req" SsrfSink=req
47+ fasthttp .DoRedirects (req , res , 2 ) // $ hasTaintFlow=" req" SsrfSink=req
48+ fasthttp .DoDeadline (req , res , time.Time {}) // $ hasTaintFlow=" req" SsrfSink=req
49+ fasthttp .DoTimeout (req , res , 5 ) // $ hasTaintFlow=" req" SsrfSink=req
5050
5151 hostClient := & fasthttp.HostClient {
5252 Addr : "localhost:8080" ,
@@ -55,31 +55,31 @@ func fasthttpClient() {
5555 hostClient .GetDeadline (resByte , userInput , time.Time {}) // $ SsrfSink=userInput
5656 hostClient .GetTimeout (resByte , userInput , 5 ) // $ SsrfSink=userInput
5757 hostClient .Post (resByte , userInput , nil ) // $ SsrfSink=userInput
58- hostClient .Do (req , res ) // $ ReqSucc= req SsrfSink=req
59- hostClient .DoDeadline (req , res , time.Time {}) // $ ReqSucc= req SsrfSink=req
60- hostClient .DoRedirects (req , res , 2 ) // $ ReqSucc= req SsrfSink=req
61- hostClient .DoTimeout (req , res , 5 ) // $ ReqSucc= req SsrfSink=req
58+ hostClient .Do (req , res ) // $ hasTaintFlow=" req" SsrfSink=req
59+ hostClient .DoDeadline (req , res , time.Time {}) // $ hasTaintFlow=" req" SsrfSink=req
60+ hostClient .DoRedirects (req , res , 2 ) // $ hasTaintFlow=" req" SsrfSink=req
61+ hostClient .DoTimeout (req , res , 5 ) // $ hasTaintFlow=" req" SsrfSink=req
6262
6363 var lbclient fasthttp.LBClient
6464 lbclient .Clients = append (lbclient .Clients , hostClient )
65- lbclient .Do (req , res ) // $ ReqSucc= req SsrfSink=req
66- lbclient .DoDeadline (req , res , time.Time {}) // $ ReqSucc= req SsrfSink=req
67- lbclient .DoTimeout (req , res , 5 ) // $ ReqSucc= req SsrfSink=req
65+ lbclient .Do (req , res ) // $ hasTaintFlow=" req" SsrfSink=req
66+ lbclient .DoDeadline (req , res , time.Time {}) // $ hasTaintFlow=" req" SsrfSink=req
67+ lbclient .DoTimeout (req , res , 5 ) // $ hasTaintFlow=" req" SsrfSink=req
6868
6969 client := fasthttp.Client {}
7070 client .Get (resByte , userInput ) // $ SsrfSink=userInput
7171 client .GetDeadline (resByte , userInput , time.Time {}) // $ SsrfSink=userInput
7272 client .GetTimeout (resByte , userInput , 5 ) // $ SsrfSink=userInput
7373 client .Post (resByte , userInput , nil ) // $ SsrfSink=userInput
74- client .Do (req , res ) // $ ReqSucc= req SsrfSink=req SsrfSink=req
75- client .DoDeadline (req , res , time.Time {}) // $ ReqSucc= req SsrfSink=req SsrfSink=req
76- client .DoRedirects (req , res , 2 ) // $ ReqSucc= req SsrfSink=req SsrfSink=req
77- client .DoTimeout (req , res , 5 ) // $ ReqSucc= req SsrfSink=req SsrfSink=req
74+ client .Do (req , res ) // $ hasTaintFlow=" req" SsrfSink=req SsrfSink=req
75+ client .DoDeadline (req , res , time.Time {}) // $ hasTaintFlow=" req" SsrfSink=req SsrfSink=req
76+ client .DoRedirects (req , res , 2 ) // $ hasTaintFlow=" req" SsrfSink=req SsrfSink=req
77+ client .DoTimeout (req , res , 5 ) // $ hasTaintFlow=" req" SsrfSink=req SsrfSink=req
7878
7979 pipelineClient := fasthttp.PipelineClient {}
80- pipelineClient .Do (req , res ) // $ ReqSucc= req SsrfSink=req SsrfSink=req
81- pipelineClient .DoDeadline (req , res , time.Time {}) // $ ReqSucc= req SsrfSink=req SsrfSink=req
82- pipelineClient .DoTimeout (req , res , 5 ) // $ ReqSucc= req SsrfSink=req SsrfSink=req
80+ pipelineClient .Do (req , res ) // $ hasTaintFlow=" req" SsrfSink=req SsrfSink=req
81+ pipelineClient .DoDeadline (req , res , time.Time {}) // $ hasTaintFlow=" req" SsrfSink=req SsrfSink=req
82+ pipelineClient .DoTimeout (req , res , 5 ) // $ hasTaintFlow=" req" SsrfSink=req SsrfSink=req
8383
8484 tcpDialer := fasthttp.TCPDialer {}
8585 userInput = "127.0.0.1:8909"
0 commit comments