owasp十大漏洞学习
文章平均质量分 65
关于owasp十大漏洞的学习
是小何不是小盒呀
这个作者很懒,什么都没留下…
展开
-
SQL注入——POST union注入
4,GET提交有长度限制,最长2048个字符;POST提交没有长度要求,不是只允许使用ASCII字符,还可以使用二进制数据。2,GET提交参数会保留在历史记录中,POST提交不会。1,GET提交可以被缓存,POST提交不会。即当网站需要登录时,可以使用POST提交。一般有登录框的都会采用post提交方式。5,POST提交比GET提交更安全。原创 2023-03-12 13:02:24 · 288 阅读 · 0 评论 -
SQL注入——DNSlog手动注入
手动注入对waf的绕过有很大的帮助,但是效率比较低。DNSlog手动注入的条件和文件上传注入一样,也需要mysql有文件的读写权限。原创 2023-03-11 22:23:29 · 378 阅读 · 0 评论 -
SQL注入——文件上传
3,into outfile命令使用的环境:必须知道一个,服务器上可以写入文件的文件夹的完整路径。2,数据库的file权限规定了数据库用户是否有权限,向操作系统内写入和读取已存在的权限。在这里也可以用whoami看到小皮的权限,我给的是普通用户的权限,不是管理员权限。其实我们最终的目的是往目标靶场上上传一句话木马,或者是自己想上传的php文件。当然在试的过程中可能会出现一些碰巧的情况,比如用”试得到的是一样的结果。两种结果不一样,“错的就是错的“,所以我们找到了正确的闭合方式。原创 2023-03-11 15:22:53 · 2477 阅读 · 1 评论 -
数据链路层及交换机工作原理
其中类型是指:(参考tcp/ip协议栈理解)0x代表十六进制0x0800:IP协议;0x0806:ARP协议理解:当在进行装包的时候网络层往下传的数据要被封装成帧,这时候要考虑上三层的数据是从上一层的哪个协议流下来的(网络层的IP协议和ARP协议可以往下流)。由下层为上层提供服务的思想,当数据流到对方电脑时需要进行解封装,下层为上层提供服务也需要知道这个数据包使用的协议是什么,所以在帧头会有类型字段。原创 2023-03-09 22:44:15 · 1488 阅读 · 1 评论 -
SQL注入——时间盲注
web页面只返回一个正常页面。利用,逐个猜解数据。但是前提是数据库会执行命令代码,只是不反馈页面信息。回顾:当页面有回显选择当页面没有回显但是有报错信息选择当页面既没有回显也没有报错,但是有页面真假值,选择没有回显,没有报错,没有页面真假值,选择。原创 2023-03-07 21:09:25 · 1131 阅读 · 1 评论 -
SQL注入——布尔盲注
当猜测是第一个字母的ascii码是115,页面显示为真,再查表,得出对应字母。后续的操作是依次猜解,陆续得出数据。布尔盲注:Web页面只返回True真,False假两种类型,利用页面的返回不同,逐个猜解数据。页面没有报错回显,不知道数据库具体返回值的情况下,对数据库中的内容进行猜解,实行SQL注入。对方既没有回显位又没有报错,如果页面有真假值切换,我们就可以使用布尔盲注。当我们猜解数据库名称的第一个字母的ascii是120,页面显示false。盲注分类:布尔盲注,时间盲注,报错盲注。原创 2023-03-07 18:36:48 · 730 阅读 · 1 评论 -
SQL注入——floor报错注入
rand()函数进行分组group by和统计count()时可能会多次执行,导致键值key重复,从而导致报错。group by子句:分组语句,常用于,结合统计函数,根据一个或多个列,对结果进行分组。floor()函数:小数向下取整。concat_ws()函数:将括号内数据用第一个字段连接起来。根据users表里面有多少行,rand()就计算多少次。根据from后面的表中有多少行,前面的函数就执行多少次。rand()函数:随机返回0~1间的小数。count()函数:汇总统计数量。随机返回0~1间的小数。原创 2023-03-07 17:19:29 · 362 阅读 · 0 评论 -
SQL注入——UpdateXml报错注入
正常句式:select updatexml(doc,'/book/author/surname','1') from xml;错误句式:select updatexml(doc,'~book/author/surname','1') from xml;第一个参数:XML_document是string格式,为XML文档对象的名称,例如Doc。第三个参数:new_value,string格式,替换查找到的符合条件的数据。第二个参数:XPath_string是路径,XPath格式的字符串。原创 2023-03-07 09:04:06 · 458 阅读 · 0 评论 -
SQL注入——extractValue()报错注入
在实际的注入过程中,查询的列(比如本例中的doc)是不用管的,随便写就可以。因为我们关注的是后面查询的更重要的东西(database)于是我们想到,如果在报错之前执行一下select语句,然后在报错提醒信息那里回显出我们想要的数据信息就好了,这就是报错注入。这条命令的意思是,想要显示的内容123456,这句话的意思是从第一个字符开始显示,显示后面的三个,即123。同理,从第31个字符开始显示,显示后面的30个字符。比如在本例中把查询参数的路径写错,页面上只会显示查询不到内容,但是不会报错。原创 2023-03-06 20:42:49 · 3038 阅读 · 0 评论 -
sql注入——报错注入
两个无加区别:后台对于输入输出的合理性没有做检查。原创 2023-03-05 14:42:17 · 224 阅读 · 0 评论 -
SQL注入——数字型union联合注入
联合查询union默认只显示union前一段语句查询到的结果,我们将id改为一个不存在的数字,从而使前一段语句查询不到结果,显示出最后一段语句查询到的内容。输入’判断是否存在注入点,如果报错则存在注入点。因为是数字型注入,所以根本不用考虑闭合方式。用and语句判断数字型还是字符型。所以判断是数字型注入。原创 2023-03-05 13:50:33 · 334 阅读 · 0 评论 -
SQL注入——字符型union注入
使用union注入拿到靶机中数据库里的所有用户名和密码查询语句:select 列名 from 表名 where 限定语句以sql-labs中的less-1为例。原创 2023-03-04 21:46:37 · 610 阅读 · 1 评论 -
SQL注入基础部分
通过把sql命令插入到web表单提交或输入域名或页面请求的查询字符串,最终到达欺骗服务器执行恶意的SQL命令,从而进一步得到相应的数据信息。简单的说:通过构造一条精巧的语句,来查询到想要得到的信息。注入点就是可以实行注入的地方,通常是一个访问数据库的连接。原创 2023-03-04 18:53:58 · 157 阅读 · 0 评论 -
SQL注入之SQL的增删改
在sql注入的堆叠注入或者是迭代注入的时候会涉及到对数据库的修改,这时候就需要用到这些基础命令。其实在图形化界面下可以不用命令,在这里提前学习命令是为了以后在linux系统下做准备。在这里我们以phpstudy搭建的靶场中的图形化界面来展示数据库。创建数据表employees,并写入表格信息及相关参数。创建数据库employees并选择字符集。以下都是在sql注入中常用到的命令。选择进入数据库employees。删除数据库employees。修改数据表名称为user。原创 2023-03-03 18:53:59 · 705 阅读 · 0 评论 -
DVWA之SQL注入(低级)
注意:我们在输入框输入id=1' order by 1#,通过改造sql语句修改了应用程序逻辑,执行的sql语句实际上数据库中执行的是:select * from 表 where id='1' order by 1 #'。由于#已经注释掉了后面所有的内容,所以实际上的效果:select * from 表 where id='1' order by 1(#也可以换成--)继续输入1’and'1'='1或者1'='1发现可以正常回显,所以目前可以十分准确的判断存在的是sql注入中的字符型注入。原创 2022-11-17 13:48:14 · 2570 阅读 · 3 评论 -
Simple_SSTI_1与Simple_SSTI_2
#__globals__[] 使用方式是 函数名.__globals__获取function所处空间下可使用的module、方法以及所有变量。flask是一个使用Python编写的轻量级Web应用框架(一种开发框架,用来支持动态网站,网络应用程序及网络服务的开发。3,SECRET_KEY配置变量是通用密钥,可在Flask和多个第三方扩展中使用,加密的强度取决于变量值的机密度,不同的程序使用不同的密钥。于是猜测flag是否藏在某一个文件夹中,于是尝试用ls列举出文件夹中的文件一下。原创 2022-10-17 15:00:53 · 3164 阅读 · 1 评论 -
模板注入漏洞
模版语言背后的前提是语言在其他文档中“嵌入”。一些模版语言是完整的通用语言,比如PHP,ASP.NET和Java的JSP。也有其他的更专门用于模板化,例如:Velocity和FreeMaker(Java的两个实用程序)。许多文字处理器都有自己的模板功能。通常被称为“邮件合并”。原创 2022-10-13 11:28:50 · 819 阅读 · 0 评论