1假设你用自己的用户名和密码登录了一个付费网站网站服务器需要查询一下你是不是VIP用户服务器通常都是会向数据库进行查询的因为服务器把用户数据都放在数据库里面了要向数据库进行增加删除修改和查询这些操作就需要用到SQL这种语言了2但问题是如果黑客没有正常输入数据而是把数据转换成代码使得服务器向数据库的正向查询变成了不正常的代码执行那么黑客就可以执行自己想要的操作了3SQL的语法就很像正常的英语假设用户输入了用户名和密码后服务器就会把输入的用户名和密码这两条数据加在WHERE语句里面4这看起来是一个正常的操作但是服务器如果没有过滤用户输入的数据比方说黑客在用户名最后加上一个单引号就会变成以下5当SQL执行这条语句的时候会把一对引号里面的视为字符数据而不是操作符6但是这里的引号不成对因此这条SQL语句是会报错的如果此时服务器傻傻的把SQL报错的信息直接返回给用户那么黑客就知道具体是什么原因导致报错了SQL注入攻击的门就这样被打开了7如果我们在单引号后面再加上--事情就不一样了如果在Mysql里面系统遇到了这两条横线就会认为后面的内容都是注释注释是不会被视为代码进行执行的注释一般是用来给代码进行解释说明的文字相当于只会执行前面的SQL语句如果黑客知道用户名即使不知道密码也可以进行账号登录了8那如果黑客连正确的用户名信息都没有也没关系因为SQL语句在遇到WHERE关键词的时候会判断条件是真还是假如果一个条件为真另外一个条件为假再用OR或者来把这两个条件拼接起来那么得到的就是真也就是说黑客只需要再增加一个为真的条件就行了9比如11因为1肯定等于1的所以条件为真即使用户信息错误WHERE这里的逻辑判断都是为真因为这里是OR或者这样的逻辑10正因为我们可以注入SQL代码甚至有些车主会把自己的车牌改成这样子对交警系统进行了SQL注入比如车闯红灯摄像头拍照放到数据库里面查询这辆车的信息进行扣分由于数据库识别到的是DROP DATABASES命令会将交警系统的数据库进行删除形成SQL注入总结当web应用向后台数据库传递SQL语句进行数据库操作时。如果对用户输入的参数没有经过严格的过滤处理那么攻击者就可以构造特殊的SQL语句直接输入数据库引擎执行获取修改数据库中的数据最终到达欺骗服务器执行恶意的SQL命令从而进一步得到相应的数据信息。******通过构造一条精巧的语句来查询到想要得到的信息SQL注入本质把用户输入的数据当成代码来执行了“数据与代码分离”的原则关键点所有的漏洞都是有条件的1用户能够控制输入的内容比如如果只能输入数字那SQL注入不了2数据库能够执行用户输入的内容SQL注入的危害盗取网站的敏感信息用户名密码电话地址......绕过网站后台认证万能密码‘ or 11#admin ‘ or‘1’’1’#注意只有当SQL注入漏洞存在的时候才能使用为什么能使用万能密码万能密码select * from users where username’’‘ or 11#and password’’因为#代表注释所以效果变成了这样select * from users where username’’‘ or 11SQL注入的分类根据反馈结果分类有回显显错注入无回显盲注根据数据类型分类数字型输入的参数为整型如id年龄页码等例有且仅有0123456789错误演示‘1‘这是字符型因为有单引号字符型输入的参数为字符串数字型与字符型最大的区别数字型不需要闭合而字符串型一般需要闭合SQL注入流程1寻找注入点*SQL注入*SQL 和数据库有交互的地方如果和数据库没交互也不存在SQL注入了https://so2.4399.com/search/search.php?k111总结当出现?xxyyy就可能出现SQL注入漏洞2判断闭合方式先判断是数字型还是字符型数字型不用判断输入?id1abcd有报错数字型 无报错字符型再判断闭合方式先尝试单引号再尝试双引号id1asdf’再看报错单引号没有报错再加双引号如果都没有报错大概率没有SQL注入报错解决停止更新替换文件原因正常语句select * from users where id ’$id’当你的id1时select * from users where id’1’当你的id1‘时select * from users where id’1’’这时候就会报错程序不认识多了一个单引号程序识别不出来不知道哪个单引号是系统的注意不能用#当注释因为#在url地址栏相当于锚点当你的id1‘ --时select * from users where id’1’--’?id1 unlonselect 1,(select table_name from information_schema.tables where table_schemasecurity),3 --判断数据库版本注意mysql数据库5.0版本以下没有information_schema数据库无法进行手动注入解释information_schema.tables是数据库中保存表信息的系统表。table_schema 字段存放表所属的数据库名schema。where table_schemasecurity表明只取属于名为 security 的数据库或 schema下的表名。?id1 unlonselect 1,(selectgroup_concat(table_name)from information_schema.tables where table_schemasecurity),3 --?id1 unlonselect 1,(select group_concat(column_name) from information_schema.columnswhere table_schemasecurityandtable_name’users’),3 --Dvwa靶场Pikachu靶场同上
手机号定位革命:一键查询归属地地图精准定位的免费神器 【免费下载链接】location-to-phone-number This a project to search a location of a specified phone number, and locate the map to the phone number location. 项目地址: https://gitcode.com/gh_mir…
1. 项目概述:这不是又一个管理 buzzword,而是技术决策的“安全气囊” “Why Tech Leaders Need Impact Filters Now More Than Ever”——这个标题乍看像一篇泛泛而谈的行业评论,但在我过去十二年带过三十多个跨职能技术团队、亲手交付过从银…
1. 项目概述:Excel里冻住多行,到底在解决什么真实痛点?“How to Freeze Multiple Rows in Excel”——这个标题看着简单,但背后藏着大量职场人每天都在默默忍受的低效时刻。我做Excel培训和数据处理支持十多年,接触过上…
如何快速解锁幻兽帕鲁存档编辑能力:新手必备的完整转换指南 【免费下载链接】palworld-save-tools Tools for converting Palworld .sav files to JSON and back 项目地址: https://gitcode.com/gh_mirrors/pa/palworld-save-tools
想要完全掌控你的幻兽帕鲁…
WSABuilds终极指南:让Windows电脑秒变安卓手机 【免费下载链接】WSABuilds Run Windows Subsystem For Android on your Windows 10 and Windows 11 PC using prebuilt binaries with Google Play Store (MindTheGapps) and/or Magisk or KernelSU (root solutions)…