文章目录
前言
学习完渗透入门后进行靶场联系
提示:以下是本篇文章正文内容,下面案例可供参考
一、SQL注入
完全相信用户输入,没有对用户输入进行过滤。
发现SQL注入后,
union select 1,datebase()# 爆破库
union select 1,table_name from information_schema.tables where table_name='数据库名#爆破行'
union select 1,column_name from information_schema.tables where table_name='列名'#爆破列
union select 1,concat(user,password) from users# 爆破user和password
union select 1,concat_ws(char(32,58,32),usesr,password) from user# 其中32为空格58位冒号 显示为user : password
union select 1, concat(@@datadir,@@basedir,@@version_compile_os)# 数据库路径,MYSQL安装路径 操作系统
二、XSS跨站脚本攻击
- 反射性:不储存远程
<script>alert("XSS"):<script>
,应对措施:简单模式匹配删除<script>
,但是并不区分大小写。删除模式来禁用JavaScript,可使用html事件 - 持久性:留言板,储存在远程。应对措施:过滤字段,但是未过滤大小写,
- DOM型:javascript隐藏在URL中。应对措施:模式匹配删除字段,但可从选择块分离出,添加Onerror事件。URL的片段部分(任何在#之后)不会发送到服务器。
#<script>alert("XSS")<script>
三、命令执行RCE
- 不对用户输入进行过滤。
- 过滤不够完全。
四、暴力破解
使用Burp suite 测试器,攻击类型:
狙击手:当有多个测试变量的时候,依次用字典里的数据替换第一个参数,其余变量值不便,当第一个变量测完成后依次用字典里的数据替换第二个人变量,测试好的变量和其他变量保持默认值
破城锤功能:所有变量同时放数据字典第一个值,同时放第二个值。特点:只需要指定一个字典。
草叉功能:每个变量需要指定一个字典。多个变量同时依次取对应字典的数据。特点:需要多个字典。注意:当一个变量的数据字典用完的时候就会停止测试,即使别的变量字典还有数据。
字母弹:某一个变量的某一个值,会对应测试其余变量的所有值。
特点:多个字典。
五、跨站请求伪造CSRF
Low
无需验证直接修改密码。
Medium
分析源码if( stripos( $_SERVER[ 'HTTP_REFERER' ] ,$_SERVER[ 'SERVER_NAME' ]) !== false )
可知对HTTP_REFRER进行了判断,但是HTTP_REFERER可抓包修改。
High
php checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' )
得到用户的token需要配合储存XSS弹出cookie。
Impossible
需要得到原密码
六、Javascript
Low
输入success提示无效的密码,用burp抓包发现token为token=d41d8cd98f00b204e9800998ecf8427e,分析前端代码发现值写在input标签中。进一步分析js发现函数generate_token()用于生成token。传入的参数ID为phrase.分析标签发现其为输入框内容。
因此生成token步骤为在输入框输入success,然后在console中调用generate_token()用于生成。
Medium
同理,他只是把JS放在一个文件里而已。
High
代码进行了混淆,增加了无关的函数,增加破解的难度。
解密地址http://deobfuscatejavascript.com/ 可看到关键函数token_part1,token_part2,part3在点击事件时自动触发无需再控制台输入。
Impossible
永不相信用户
总结
通过上述各个项目,了解了Burp使用,XSS,SQL.RCE等漏洞原理及相关的防范措施。对WEB安全有了一个大致的了解,后续继续练习靶场,学习逆向相关知识。# DVWA学习笔记