mirror of
https://github.com/github/codeql.git
synced 2026-02-17 15:33:45 +01:00
99 lines
3.3 KiB
C#
99 lines
3.3 KiB
C#
using System;
|
|
using System.Web;
|
|
|
|
namespace Sinks;
|
|
|
|
public class NewSinks
|
|
{
|
|
private string privateTainted;
|
|
public string tainted;
|
|
|
|
private string PrivateTaintedProp { get; set; }
|
|
public string TaintedProp { get; set; }
|
|
public string PrivateSetTaintedProp { get; private set; }
|
|
|
|
// New sink
|
|
// sink=Sinks;NewSinks;false;WrapResponseWrite;(System.Object);;Argument[0];html-injection;df-generated
|
|
// neutral=Sinks;NewSinks;WrapResponseWrite;(System.Object);summary;df-generated
|
|
public void WrapResponseWrite(object o)
|
|
{
|
|
var response = new HttpResponse();
|
|
response.Write(o);
|
|
}
|
|
|
|
// NOT new sink as method is private
|
|
private void PrivateWrapResponseWrite(object o)
|
|
{
|
|
var response = new HttpResponse();
|
|
response.Write(o);
|
|
}
|
|
|
|
// New sink
|
|
// sink=Sinks;NewSinks;false;WrapResponseWriteFile;(System.String);;Argument[0];html-injection;df-generated
|
|
// neutral=Sinks;NewSinks;WrapResponseWriteFile;(System.String);summary;df-generated
|
|
public void WrapResponseWriteFile(string s)
|
|
{
|
|
var response = new HttpResponse();
|
|
response.WriteFile(s);
|
|
}
|
|
|
|
// New sink
|
|
// sink=Sinks;NewSinks;false;WrapFieldResponseWriteFile;();;Argument[this];html-injection;df-generated
|
|
// neutral=Sinks;NewSinks;WrapFieldResponseWriteFile;();summary;df-generated
|
|
public void WrapFieldResponseWriteFile()
|
|
{
|
|
var response = new HttpResponse();
|
|
response.WriteFile(tainted);
|
|
}
|
|
|
|
// NOT new sink as field is private
|
|
// neutral=Sinks;NewSinks;WrapPrivateFieldResponseWriteFile;();summary;df-generated
|
|
public void WrapPrivateFieldResponseWriteFile()
|
|
{
|
|
var response = new HttpResponse();
|
|
response.WriteFile(privateTainted);
|
|
}
|
|
|
|
// New sink
|
|
// sink=Sinks;NewSinks;false;WrapPropResponseWriteFile;();;Argument[this];html-injection;df-generated
|
|
// neutral=Sinks;NewSinks;WrapPropResponseWriteFile;();summary;df-generated
|
|
public void WrapPropResponseWriteFile()
|
|
{
|
|
var response = new HttpResponse();
|
|
response.WriteFile(TaintedProp);
|
|
}
|
|
|
|
// NOT new sink as property is private
|
|
// neutral=Sinks;NewSinks;WrapPrivatePropResponseWriteFile;();summary;df-generated
|
|
public void WrapPrivatePropResponseWriteFile()
|
|
{
|
|
var response = new HttpResponse();
|
|
response.WriteFile(PrivateTaintedProp);
|
|
}
|
|
|
|
// NOT new sink as property setter is private
|
|
// neutral=Sinks;NewSinks;WrapPropPrivateSetResponseWriteFile;();summary;df-generated
|
|
public void WrapPropPrivateSetResponseWriteFile()
|
|
{
|
|
var response = new HttpResponse();
|
|
response.WriteFile(PrivateSetTaintedProp);
|
|
}
|
|
}
|
|
|
|
public class CompoundSinks
|
|
{
|
|
// neutral=Sinks;CompoundSinks;WrapNewSinkProp;(Sinks.NewSinks);summary;df-generated
|
|
// sink=Sinks;CompoundSinks;false;WrapNewSinkProp;(Sinks.NewSinks);;Argument[0];html-injection;df-generated
|
|
public void WrapNewSinkProp(NewSinks ns)
|
|
{
|
|
ns.WrapPropResponseWriteFile();
|
|
}
|
|
|
|
// neutral=Sinks;CompoundSinks;WrapNewSinkField;(Sinks.NewSinks);summary;df-generated
|
|
// sink=Sinks;CompoundSinks;false;WrapNewSinkField;(Sinks.NewSinks);;Argument[0];html-injection;df-generated
|
|
public void WrapNewSinkField(NewSinks ns)
|
|
{
|
|
ns.WrapFieldResponseWriteFile();
|
|
}
|
|
}
|