java程序POSS注入,怎样测试,怎样改代码

2022-03-14 科技 67阅读
由于在构造查询语句的时候,会拼接来自用户输入的数据,如果没有对用户输入数据作适当的过滤,用户就可以构造一些特殊的数据,通过服务器返回的错误信息来获取数据库中的信息,当然包括用户名密码类的敏感数据,甚至直接修改数据。
比如:简单的查询sql="select*fromabcwherea='"+x+"'";

构造特殊的x:sql="select*fromabcwherea='"+"'having'1'='1"+"'";//由于没有groupby语句而单独使用having,将会出错,服务器返回错误信息,错误信息中会包括比如字段名称,数据库名称等等一些。获取这些信息后,就可以进一步构造特殊语句获取更多信息。
所以防注入的2个要点就是:过滤和屏蔽错误提示。
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com