上海门户网站制,北京网页制作公司电话,官网指的是什么网站,网站建设遇到哪些危险知识点
存在SQL约束攻击的网站#xff0c;注册时通过数据库已有账户例如admin大量空格#xff0c;随意密码点击注册#xff0c;后端先在数据库查找select#xff0c;将已有账户扩充相同长度#xff0c;已有账户与注册账户#xff08;有大量空格#xff09;不等#xf…知识点
存在SQL约束攻击的网站注册时通过数据库已有账户例如admin大量空格随意密码点击注册后端先在数据库查找select将已有账户扩充相同长度已有账户与注册账户有大量空格不等因为有效长度不同已有账户扩充的长度不为有效长度之后插入insert截断注册账户的多余长度但后面为大量的空格由于在SQL里执行字符串处理时字符串末尾的空格符将会被删除所以最后插入的注册账户即为已有账户admin密码成为注册时的密码即可成功登陆。
补充 简单来说就是在注册页面通过大量空格来超过sql里的约束字符令在读取用户名时不用被查询到是重复用户名达到越权。
在INSERT里SQL会根据varchar(n)来限制字符串的最大长度。 1、如果字符串的长度大于“n”个字符的话那么仅使用字符串的前“n”个字符. 2、在SQL里执行字符串处理时字符串末尾的空格符将会被删除。
解题流程
0、打开网页查看题目描述 hint:SQL约束攻击 1、分析进攻方法 约束SQL注入的原理就是利用的约束条件比如最长只能有15个字符的话如果你输入的是abcdefghijklmnop(16位那么保存在数据库里的就是abcdefghijklmno那么别人用abcdefghijklmno注册一个用户名就可以登陆。
还有一个可以利用的地方就是SQL在执行字符串处理的时候是会自动修剪掉尾部的空白符的也就是说abcabc 同样我们可以通过注册用户名为abc 的账号来登陆abc的账号。
那就试着用admin 注册了一个账号用这个的密码登陆admin账号 2、注册账号账号为admin 密码符合要求即可 3、登陆刚才注册好的账号:admin(注意不为admin因为经过后台处理)加上注册输入的密码 4、得到flagflag{dceb7d257aaf2f3663fe556a5a690123}