文章目录
总体思路:
1、第一件事情 逃脱出单引号的控制 闭合单引号
2、单双引号需要成对出现 在python php Java中
3、2个办法 继续把多出来的单引号闭合,要么注释掉单引号
4、MySQL注释符 – # /***/ */ url会编码# 要用%23绕过 规则:ord(‘#’) hex(35)
5、需要知道联合查询的列数 求当前表的列数(联表查询必须保证两个表列数一致)
6、需要order by 检测他的列数 列数3
7、让第一个表查询为空
8、最终目的 注入管理员账号密码
9、首先你要知道管理员表名 列名(利用MySQL自带的数据库information_shame)
less-1:
http://127.0.0.1/sqllabs/less-2/?id=1
less-2:
http://127.0.0.1/sqllabs/less-2/?id=1
less-3:
http://127.0.0.1/sqllabs/less-3/?id=1
less-4:
http://127.0.0.1/sqllabs/less-4/?id=1%27
less-5:
1、报错注入的突破口就是让页面上显示报错。
2、比如在本例中把查询参数的路径写错,页面上只会显示查询不到内容,但是不会报错。
3、但是如果把查询参数的格式符号写错,页面上就会提示出报错信息:
4、由于路径错误,报错信息中显示出了路径信息。
5、于是我们想到,如果在报错之前执行一下select语句,然后在报错提醒信息那里回显出我们想要的数据信息就好了,这//就是报错注入。
http://127.0.0.1/sql