联合注入原理 联合查询,两边的字段数要相同,不然会报错 就像这样 select from users where user_id=1 union select * from guestbook 上述联合查询语句可以拆分为两个查询语句 select from users where user_id=1 和 select from guestbook 接下来要确定两个查询语句的字段数 select from users where user_id=1 字段数(注入点)为8 select * from guestbook 的完全语句为 select * from guestbook where comment_id = 1 字段数为3 利用联合查询创造多个查询点,然后将第二个查询语句的数字替换成为各种函数,一次性进行多个查询 限定语句导致的错误 当联合查询两个以上语句时,如果将comment_id设定为1的话,那除了第一个语句外的后面的所有语句都将不会回显出来 联合注入攻击 白盒测试流程 攻击开始 判断为字符型还是数字型 这里只是将Id更改了,没有其他变化,不像数字型注入漏洞 改为字符型试探 当输入值改为1' and '1'='2时,页面直接崩溃,说明这里有一个字符型注入漏洞 判断字段数(注入点) 注入点确定,这里只有两个注入点 数据库连接账户为localhost 连接的数据库名称为dvwa 版本为5.7.33 查询对方数据库中符号的表示方法 就会生成对应的字符 这样可以将数据库吐出来的数据更加美观一些 黑盒测试是不知道数据库内部结构和表名的 但数据库的表的数据都会保存在information_schema这个表中,我们只要将这个一定会存在的表,给他破解掉,就可以获得这个数据库中的全部表名了 黑盒测试流程 获取表名 select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA=database() limit 1 将注入点数字替换为这个语句 得到第一个表名 将注入点写入这个语句 select TABLE_NAME from information_schema.TABLES where TABLE_SCHEMA=database() limit 1,1 得到第二个表名 根据表名查询字段 通过字段查询内容
标签:语句,查询,联合,表名,where,select,注入 From: https://www.cnblogs.com/baimuyangren/p/17825609.html