Cross-site Scripting(XSS)
反射型(XSS(get))
kobe起手Salute
先简单X以下发现在写不进去了,可以断定内容字节数到头了
F12直接改它限制重新X
此处可以用任何标签以及事件,没有任何过滤只有参数内容限制
如:传奇怪图片:<img src=x οnerrοr=alert(1)>
制造button<button/οnclick=alert(1) >Noc</button>
反射型(XSS(post))
admin/123456
或
bp抓包后更改message值后在放包看能否弹窗
存储型XSS
<button/οnclick=alert(1)>Noc</button>即可留言成一个button点击跳转
DOM型XSS
翻译:你瞅啥?
我们看源码真实它
<a href =' "str" '>what do you see?</a> a标签str是传入的字符串什么都不用考虑连过滤都没有直接JavaScript(JavaScript:是伪协议可以通过what do you see这个连接来调用JavaScript函数)
完整代码:<a href =' javascript:alert(1) '>what do you see?</a>
DOM型XSS-X
同javascript:alert(),直接闭合
XSS之盲打
发现进入后直接弹框说明刚刚的语句已经X进来了
源码里也X进来了
XSS盲打平台远程加载获取cookie(固定会话攻击):
XSS Platform (xsscom.com)、XSS平台-XSS安全测试平台
这里就使用第一个
可以看到另一变平台已经返回了值
这里主要用到cookie,不仅有URL攻击方可以直接替换cookie进行攻击
XSS之过滤
script起手看被过滤了那些,可以看到过滤的就剩个大于号
<img src=x οnerrοr=alert(1)>一个img带走
大小写也可以但双写不可以<sscriptcript>alert()</sscriptcript>
XSS之htmlspecialchars
htmlspecialchars是把一些预定义的字符转换成html实体
预定义的字符是:
&(和号) 成为&
" (双引号) 成为 "
' (单引号) 成为 '
< (小于) 成为 <
> (大于) 成为 >
试一下发现是超链接a标签
既然是a标签试一试JavaScript伪协议一套带走
XSS之href输出
同样被过滤
还是同上JavaScript:alert(1)
XSS之js
X一下后什么都没返回
可以发现这其中就是由script标签包裹的 $ms='tmac'就是我们输入的地方,既然是已经被标签包裹那么如果没有过滤就很好绕过只需要单引号闭合回去分号结束后在跟我们要写如的xss语句后面的分号注释掉即可
CSRF
CSRF(GET)
根据提示随便进入一个用户(为了省事)
yakit抓包
后改成html直接访问看所改的166666666值变没变,点击后跳转个人信息直接更改,是攻击者发送链接给被攻击者点击,如此攻击者就可以守株待兔
CSRF(POST)
和上一关同理只不过请求方式变了改为了post
CSRF(TOKEN)
修改信息时会携带token
(yakit没找到在哪)换bp
没改之前:
可以点击关注重定向查看
SQL-inject
SQL-inject(数字型post)
bp或yakit抓包查看
在id处输入个单引号看注入点,发送请求后响应给了我们报错,接下来可以尝试判断字符型或数字型(他给了所以不用)尝试错误注入或者联合注入
错误注入返回结果
SQL-inject(字符型get)
弯道超车我就知道肯定有kobe直接获取两列不需要order by 或group by了 如果你想也可以试试
看url后上面传参是name传值所以重新输入试探,name=1'
很明显''name=1''' 闭合符号位两个单引号,所以接下来联合注入查询
后续和上一关卡一样不赘述
搜索型注入
给了提示输入个%试试
通过这个报错可以得知是字符型而且闭合符号为 '%%' 判断的依据是后面加上--+注释后回显正常
由上述可看出来输入%后回显最大为3列,使用联合查询查看,后续步骤和上述相同
XX型注入
可以看出有两列
判断出字符型和闭合符号后就可以对其进行注入
insert/update注入
提示告诉先注册那就先注册
做多了就会有一种感觉这种不用下bp都是对它的不尊重
当加入一个单引号后看到报错那么这道题也就结束了
由报错可知' noc' )' 前后各有一个单引号这里我要加入注释--+不会报错(这句话错误原因在下),
如:' noc' --+)'
如果不加注释加两个单引号也不会报错
如:' noc' ')'全部正常闭合
在add位置 ' 后报错和Emil报错不同原因是每个字段应该都有单引号闭合,所以我们直接看add处的报错。
刚在Emil处说注释后不会报错但注释后报错为 '' 两个单引号 在如下图就可以看出报错点 '')'
这样还不是很清奇不知道最后的 )括号加在哪儿,那么加上--+一目了然
正确源码为: ' noc' ' ')'