今天学习了SQL注入以及XSS注入。推荐资料
本文仅做技术交流。研究攻击技术是为了更好地进行防御。
1.SQL注入
SQL注入的基础是对方在进行SQL查询时采用了如下结构的代码。
select something from table where var='';
方法是输入 a' or '1'='1 这样的字符,导致原来的查询语句变成了如下代码,从而必定通过查询。
select something from table where var='a' or '1'='1';
模仿上述样例,甚至可以加入;然后再后面写入新的sql语句。例如drop数据库之类的。
2.XSS注入
这里重点介绍存储型XSS注入。
通常网页会将一些数据动态地从数据库中加载到界面上,这些数据往往又是来自用户的输入。如果用户输入一段脚本,那么就会被保存到服务器的数据库中,当其他用户查看相关页面时,脚本就会被执行。
如果输入html标签
<h3> Hi there </h3>
则会显示标签效果
如果输入脚本
<script> alert(’Hello World!’); </script>
则会自动执行脚本。
通过JS编程,利用网页DOM,黑客就能够通过跨站脚本获取用户的重要访问信息。
3.CSRF跨站伪造请求
CSRF,也可写作XSRF,与XSS不同,CSRF是在受害人访问受信任网站时,由恶意网站向受信任网站发出请求,使得受信任网站误以为是受害人的请求,从而完成攻击。
请求分为GET与POST两种请求,这里仅介绍GET请求。
GET请求非常特殊,用户发送URL请求,服务器接收就立刻响应,因此可以只要构造好特定的URL请求,就能够发动攻击。
为了让用户点击进恶意网站,需要一定的社会工程学的方法,而进入网站后我们就可以不再需要用户点击任何东西了。
我们可以在网页中放入一个<img>标签,浏览器会自动请求src中的资源,我们只要在src中放入恶意URL,就能够实现上述攻击了。
当然图片显然加载不出来,会留一个疤,不过这个疤也是可以通过排版网页或者添加CSS的方式进行抹除。