20165229 NETSEC Exp9 Webセキュリティインフラストラクチャ

20165229 NETSEC Exp9 Webセキュリティインフラストラクチャ

まず、実験の概要

準備0.WebGoat
(a)は、SQLインジェクション攻撃
1.噴射指令(コマンドインジェクション)
2.数値SQLインジェクション(SQLインジェクションの数値)
3.スプーフィングログ(ログスプーフィング)
4.インジェクション文字列(文字列のSQLインジェクション)
。5 .LAB:SQLインジェクション
バックドアデータベース(データベースバックドア)6.
7.デジタル型ブラインド注射(ブラインド数値SQLインジェクション)
8ブラインド注射ストリング(文字列はSQLインジェクションブラインド)
(2)XSS攻撃
XSSと1.Phishing
2。 XSSは、ストアド攻撃
3.Reflected XSS攻撃
(3)CSRF攻撃
1.Crossサイトリクエストフォージェリ(CSRF)
バイパスプロンプトを2.CSRF

第二に、実験的なコンテンツ

0.WebGoat準備

  • ダウンロードが遅すぎるので、私はコピーするために、学生を探していましたwebgoat-container-7.0.1-war-exec.jar
  • ファイルのディレクトリを入力し、コマンドを入力しjava -jar webgoat-container-7.0.1-war-exec.jar実行するためにWebgoat、メッセージの最後に表示されます。Starting ProtocolHandler ["http-bio-8080"]説明を開き、あなたが見ることができますwebgoatポート8080を占めます。注意:実験中の端末を閉じることはできません。

  • ブラウザ入力にhttp://localhost:8080/WebGoat直接デフォルトのユーザー名とパスワードを使用してWebGoatログインインタフェースにログインします。

(A)SQLインジェクション攻撃

  • SQLインジェクション攻撃は、攻撃するために、データベースのハッカーの一つの一般的な手段です。B / Sモードのアプリケーション開発の発展に伴い、このモデルプログラマの使用は、より多くのアプリケーションを作成します。しかし、レベルや経験プログラマは、コードを書くプログラマの重要な部分が不均一であるため、アプリケーションのセキュリティ上のリスクを決定するために、ユーザのない正当入力データがありません。ユーザーは、プログラムリターンの結果によると、コードのデータベースを照会することができ、SQLインジェクションと呼ばれ、彼が知りたい特定のデータへのアクセスは、それがSQLインジェクションです。

1.噴射指令(コマンド・インジェクション)

  • 目標:ターゲットホスト上の任意のシステムコマンドを実行する能力
  • 左のバーをクリックInjection Flaws- > Command Injection、ソースコードを変更する要素のレビューページ要素を点検し、チェックボックスを右クリックして選択し、下の青の右矢印をクリックし、コンテンツをダブルクリックし、表示されAccessControlMatrix.help、最後に追加"& netstat -an & ipconfig"

  • ボックスのビューの右上をクリックして、ネットワークポートの使用状況やIPアドレスを参照して、攻撃が成功しました。

2.数値SQLインジェクション(数値SQLインジェクション)

  • 目標:気象条件を表示します。
  • クリックInjection Flaws- >Numeric SQL Injection
    チェックボックスを右クリックしColumbia、選択するInspect Element都市は101の番号が付けられた後、ソースコードの値=へレビューページ要素を「101」に変更され、追加or 1=1
  • 攻撃が成功を行きます

3.ログ欺く(ログインスプーフィング)

  • 目的:成功したログ内のディスプレイにログインし、管理者ユーザーのユーザー名を使用してください。
  • クリックInjection Flaws- >Log Spoofing
    User Name塗りwebgoat%0d%0aLogin Succeeded for username: zkj20165229キャリッジリターンとラインフィード%の0Aの0D%をログに許さ2行を使用しました。
  • 既定値のパスワードは、[ログイン]をクリックし、あなたは、ログイン失敗ラインディスプレイにwebgoat見る次の行の表示に、独自のzkj201652296ステートメントを追加することができます。
4.インジェクション文字列を(文字列SQLインジェクション)
  • 目标:基于查询语句构造自己的SQL注入字符串,将所有信用卡信息显示出来。
  • 点击Injection Flaws->String SQL Injection,输入查询的用户名zkj' or 1=1--
    ,使用'提前闭合"",插入永真式1=1,且--注释掉后面的内容,这样就能select表里面的所有数据。
5.LAB: SQL Injection
  • 目标:使用SQL注入绕过认证。
  • 点击Injection Flaws->LAB:SQL Injection,在密码框输入' or 1=1 --,登录失败,会发现密码只有一部分输入,说明密码长度有限制。

  • 右击Password,选择nspect Element审查网页元素对可输入密码长度进行修改。

  • 重新输入' or 1=1 --,登录成功。

(二)XSS攻击

Stored XSS Attacks
  • 常见于论坛等留言、用户留言创建非法的消息内容,输入一段JavaScript脚本,其被保存在数据库中,任何用户在打开网页的时候,这个脚本就会被从数据库中取出来而运行,可以导致其他用户访问非预期的页面或内容。

  • 点击XSS - > Stored XSS Attacks,在Title中输入20165229,留言板Message中输入<script>alert("20165229 attack succeed hhhhh!");</script>

(三)CSRF攻击

Cross Site Request Forgery(CSRF)
  • CSRF通过伪装来自受信任用户的请求来利用受信任的网站。目标:向一个新闻组发送一封邮件,邮件中包含一张图片,这个图像的URL指向一个恶意请求。
  • 点击XSS->Cross Site Request Forgery(CSRF),查看下方Parameters中的scrmenu值为330900

  • Message框中输入
    ,以图片的的形式将URL放进Message框,这时的URL对其他用户是不可见的,用户一旦点击图片,就会触发一个CSRF事件。其中语句中的&transferFunds=5229即转走的受害人的金额,宽高设置成1像素的目的是隐藏该图片。

  • 点击Submit提交,在Message List中生成以Title命名的链接。点击该链接,当前页面就会下载这个消息并显示出来,转走用户的5000元,从而达到CSRF攻击的目的。

三、回答问题

(1)SQL注入攻击原理,如何防御

所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

sql注入攻击是利用是指利用设计上的漏洞,在目标服务器上运行Sql语句以及进行其他方式的攻击,动态生成Sql语句时没有对用户输入的数据进行验证是Sql注入攻击得逞的主要原因。

比如登录过程,SQL语句一般为select id from users where username = '"+username +"' and password = '" + password +"',这里的usernamepassword都是我们存取从web表单获得的数据。如果我们在表单中username的输入框中输入' or 1=1--,此时我们所要执行的sql语句就变成了select id from users where username = '' or 1=1-- and password = ''

对SQL注入攻击的防御,主要有:

  • 关闭或删除不必要的交互式提交表单页面;

  • 对漏洞注入点相关代码进行代码及SQL注入关键字的过滤,以规范代码安全性;

  • 不要在服务器端放置备份的文件以免受到感染,或备份的文件含有漏洞,造成切入点

(2)XSS攻击的原理,如何防御
  • 览器自身可以识别简单的XSS攻击字符串,从而阻止简单的XSS攻击;从根本上说,解决办法是消除网站的XSS漏洞,这就需要网站开发者运用转义安全字符等手段。

  • 一个原则:不相信用户输入的任何数据!

(3)CSRF攻击原理,如何防御
  • 改良站内 API 的设计。对于发布帖子这一类创建资源的操作,应该只接受 POST 请求,而 GET 请求应该只浏览而不改变服务器端资源。

  • 使用“请求令牌”。首先服务器端要以某种策略生成随机字符串,作为令牌(token),保存在Session里。然后在发出请求的页面,把该令牌以隐藏域一类的形式,与其他信息一并发出。在接收请求的页面,把接收到的信息中的令牌与Session中的令牌比较,只有一致的时候才处理请求,否则返回 HTTP 403 拒绝请求或者要求用户重新登陆验证身份。

おすすめ

転載: www.cnblogs.com/zkkj/p/10926800.html