UNION指令:可执行跨表查询(SELECT),合并两张表的搜寻结果。
两个原则:
1.栏位数量相同,第一个栏位数=2,第二个栏位数也要=2
2.栏位类型相同,第一个栏位id是int,第二个栏位id也要是int
上图取自台科大资安社课教材
1.利用NULL(可转换成每种常用资料型态,跟着前面栏位)
'UNION SELECT NULL -- #喷错
'UNION SELECT NULL,NULL -- #没喷错,2个栏位
'UNION SELECT NULL,NULL,NULL - #喷错
2.ORDER BY
ORDER BY [第几个栏位]:可依第几个栏位,进行排序
'ORDER BY 1 #正确表示有第一个栏位
'ORDER BY 2 #正确表示有第二个栏位
'ORDER BY 3 #喷错表示没有第三个栏位,只有2个栏位
上图取自台科大资安社课教材
透过NULL+字串进行测试,没有喷错表示那个栏位为字串型态,下面以确认有4个栏位举例
'UNION SELECT 'a',NULL,NULL,NULL--
'UNION SELECT NULL,'a',NULL,NULL--
'UNION SELECT NULL,NULL,'a',NULL--
'UNION SELECT NULL,NULL,NULL,'a'--
输入名字後发现,有7个栏位,姑且猜测有7个
用UNION SELECT 确认栏位数,第一个引号作闭合,最後--为注解,中间7个NULL,可执行成功,确定7个栏位(有试过6个NULL喷错)
接着确认栏位型态,用偷吃步,直接看表格内容去猜
接着用SELECT schema_name FROM information_schema.schemata找其他表格
最後去每个资料表里面,用语法找目标'Joseph',SELECT * FROM user_system_data(在user_system_data里找到目标密码)
一样用'闭合,因为前面用***,表示选所有栏位**(有7个),所以这边也要用7个,最後用--注解掉後面 ',--後面记得要空白(前面不用)
假设有个网站他有SQL injection漏洞,位置在cookie的地方,当输入WHERE 1=1--时,可回传true,前端可看到welcome back
上图取自台科大资安社课教材
同样道理去猜看是否有administrator帐号,有的话,再透过Substring去猜密码,假设第一个字元是s,如果正确就可以用彩虹表去爆破,因为密码都是用hash,杂凑过的
上图取自台科大资安社课教材
上图取自台科大资安社课教材
想办法让系统触发错误讯息,在第二个式子,因为1=1成立,所以触发1/0,资料库会产生错误
上图取自台科大资安社课教材
同样道理接着测试密码,用1/0去确认administator是否存在,如果存在会喷错误,再用substring 切割字串爆破密码
上图取自台科大资安社课教材
上图取自台科大资安社课教材
当1=1,符合条件,所以会触发延迟
上图取自台科大资安社课教材
同样道理
第三行的红字如果成立就会跳True(1),会成立所以触发延迟
上图取自台科大资安社课教材
上图取自台科大资安社课教材
上图取自台科大资安社课教材
语法好多记不住,可以用工具打打看,里面有放很多指令
上图取自台科大资安社课教材
有绕过WAF、IPS、IDS等等指令
上图取自台科大资安社课教材
其他插件
上图取自台科大资安社课教材
但一样有很大机率会被WAF、IPS、IDS等防护设备阻挡,要看防护设备类型,可以不要送这麽快,1次送一个封包等等
又是JSON 开新专案 准备XML档+ListView 放好ID 准备一个TXT档案- 把txt档案...
Background Goland从1.11版本起就开始导入了GO Module功能,这样也不需要再...
或许你想问我 狗狗币有突出的技术吗? 它不是只是照抄程序码而诞生的加密货币吗? 事实并非如此, 我认...
大家好,我是YIYI,今天我要来制作左上角点开的清单以及点开右上角相机後的页面。 清单LIST 考虑...
再探链结串列与树结构 在前三天的刷题实战中,我们一起实作了线性的链结串列和非线性的树相关的题目。其...