'''Improper input validation'''<ref name=":0">{{cite web |work=[[Common Weakness Enumeration]] |publisher=[[MITRE]] |title=CWE-20: Improper Input Validation |url=http://cwe.mitre.org/data/definitions/20.html |date=December 13, 2010 |accessdate=February 22, 2011}}</ref> or '''unchecked user input''' is a type of [[vulnerability (computing)|vulnerability]] in [[computer software]] that may be used for [[security exploit]]s.<ref name=hacking>{{cite book|title=Hacking: the art of exploitation|series=No Starch Press Series|publisher=Safari Books Online|first=Jon|last=Erickson|edition=2, illustrated|year=2008|ISBN= 978-1-59327-144-2}}</ref> This vulnerability is caused when "[t]he product does not validate or incorrectly validates input that can affect the control flow or data flow of a program."<ref name=":0" />
<!-- Please do not remove or change this AfD message until the issue is settled -->
{{Article for deletion/dated|page=String exploits|timestamp=20110219225246|year=2011|month=February|day=19|substed=yes}}
<!-- For administrator use only: {{Old AfD multi|page=String exploits|date=19 February 2011|result='''keep'''}} -->
<!-- End of AfD message, feel free to edit beyond this point -->
{{Unreferenced|date=December 2009}}
{{Notability|date=March 2008}}
'''String exploits''' are [[security exploit]]s involving handling of [[String (computer science)|string]] data in computer software.
Examples include:
==Concatenation problems==
* [[Buffer overflow]]
It is possible to cause ''String1 + User_Input_String + String2'' to behave in unexpected ways by crafting unanticipated User_Input_String, such as having string2 ignored in processing.
* [[Cross-site scripting]] - unsafe output of input strings▼
* [[Directory traversal]]
* [[Null byte injection]]
* [[SQL injection]]
* [[Uncontrolled format string]]
===String termination=References ==
{{reflist}}
In many environments, it is possible to truncate the string with clever input.
* PHP: '''%00''' (NUL) can terminate strings, when used for API calls that uses it to terminate strings.
* Oracle: '''CHR(0)''' (NUL) can terminate strings when used for e.g. EXECUTE IMMEDIATE.
{{security-software-stub}}
===Comment out characters===
In many environments, it is possible to "ask" the system to ignore the rest of the string, using "comment" characters.
* Many languages: '''/*''' means ignore everything until a '''*/''' combination.
* SQL: '''--''' means ignore rest of line
* Unix shells: '''#''' means ignore rest of line
==See also (other string problems)==
* [[Format string attack]] - unchecked <code>[[printf|*printf]]</code> format strings are dangerous<!-- If exception handling is not involved -->
* [[Buffer overflow]] - Buffer overflows often occurs in unsafe string functions
▲* [[Cross-site scripting]] - unsafe output of input strings
* [[Directory traversal]] - concatenating strings to create a filename is not a good idea
* [[SQL injection]] - concatenating strings to create a SQL statement is not a good idea
{{DEFAULTSORT:String Exploits}}
[[Category:Computer security exploits]]
|